diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 09c832203ccf47d24035542f81ca944c465452b1..6f242039ccfbbb4223ac19ccd0d04df36aa496ce 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -143,6 +143,15 @@ module Homebrew end end + unless f.requirements.to_a.empty? + ohai "Requirements" + %w[build required recommended optional].map do |type| + reqs = f.requirements.select(&:"#{type}?") + next if reqs.to_a.empty? + puts "#{type.capitalize}: #{decorate_requirements(reqs)}" + end + end + unless f.options.empty? ohai "Options" Homebrew.dump_options_for_formula f @@ -158,4 +167,12 @@ module Homebrew end deps_status * ", " end + + def decorate_requirements(requirements) + req_status = requirements.collect do |req| + req_s = req.display_s + req.satisfied? ? pretty_installed(req_s) : pretty_uninstalled(req_s) + end + req_status.join(", ") + end end diff --git a/Library/Homebrew/requirement.rb b/Library/Homebrew/requirement.rb index 89487fec35f70397e58aacefbb5cd2909e9fa7fc..5bc4b9a2b78351380765f114caca45a0efcd35ee 100644 --- a/Library/Homebrew/requirement.rb +++ b/Library/Homebrew/requirement.rb @@ -121,6 +121,10 @@ class Requirement end end + def display_s + name + end + private def infer_name diff --git a/Library/Homebrew/requirements/java_requirement.rb b/Library/Homebrew/requirements/java_requirement.rb index c868e0f3f8f92fd9f19ea447c9787b45a1e41c3b..33fc01229991dbb07ff7a50c8e6019365fa9e6a6 100644 --- a/Library/Homebrew/requirements/java_requirement.rb +++ b/Library/Homebrew/requirements/java_requirement.rb @@ -42,4 +42,19 @@ class JavaRequirement < Requirement def inspect "#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>" end + + def display_s + if @version + if @version[-1] == "+" + op = ">=" + version = @version[0, @version.length-1] + else + op = "=" + version = @version + end + "#{name} #{op} #{version}" + else + name + end + end end diff --git a/Library/Homebrew/requirements/language_module_requirement.rb b/Library/Homebrew/requirements/language_module_requirement.rb index 7091a690a79206a881decc7cf78eef56531e1135..e20f48361990223ac6cb6ff552ce8b15a769dea3 100644 --- a/Library/Homebrew/requirements/language_module_requirement.rb +++ b/Library/Homebrew/requirements/language_module_requirement.rb @@ -51,4 +51,8 @@ class LanguageModuleRequirement < Requirement when :ruby then "gem install" end end + + def display_s + "#{@module_name} (#{@language} module)" + end end diff --git a/Library/Homebrew/requirements/maximum_macos_requirement.rb b/Library/Homebrew/requirements/maximum_macos_requirement.rb index ceaa5184bce0a1b0c4af45347741646c0069c0f0..6e798b478e650cb87523828420696adf6f87cad2 100644 --- a/Library/Homebrew/requirements/maximum_macos_requirement.rb +++ b/Library/Homebrew/requirements/maximum_macos_requirement.rb @@ -16,4 +16,8 @@ class MaximumMacOSRequirement < Requirement versions newer than #{@version.pretty_name} due to an upstream incompatibility. EOS end + + def display_s + "macOS <= #{@version}" + end end diff --git a/Library/Homebrew/requirements/minimum_macos_requirement.rb b/Library/Homebrew/requirements/minimum_macos_requirement.rb index 8f82001ea13f23123de6711277e2f57d96f737fc..2cb63f740a8f2aa19e516704e3628a626b5aa3a4 100644 --- a/Library/Homebrew/requirements/minimum_macos_requirement.rb +++ b/Library/Homebrew/requirements/minimum_macos_requirement.rb @@ -13,4 +13,8 @@ class MinimumMacOSRequirement < Requirement def message "macOS #{@version.pretty_name} or newer is required." end + + def display_s + "macOS >= #{@version}" + end end diff --git a/Library/Homebrew/requirements/perl_requirement.rb b/Library/Homebrew/requirements/perl_requirement.rb index 007134191d59cab5437706ceaa8f55a8c3ab5826..06e36ac0d6328c60b6c786c16bd64785baa49bc9 100644 --- a/Library/Homebrew/requirements/perl_requirement.rb +++ b/Library/Homebrew/requirements/perl_requirement.rb @@ -25,4 +25,12 @@ class PerlRequirement < Requirement def inspect "#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>" end + + def display_s + if @version + "#{name} >= #{@version}" + else + name + end + end end diff --git a/Library/Homebrew/requirements/ruby_requirement.rb b/Library/Homebrew/requirements/ruby_requirement.rb index 873f285bffdb59c0e7f7e24ef9e88ba997bf7a8d..a890435a58389414924c7c9b28704b4ce90124e4 100644 --- a/Library/Homebrew/requirements/ruby_requirement.rb +++ b/Library/Homebrew/requirements/ruby_requirement.rb @@ -25,4 +25,12 @@ class RubyRequirement < Requirement def inspect "#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>" end + + def display_s + if @version + "#{name} >= #{@version}" + else + name + end + end end