From 245838d86d21250feeabc44dbc6ffabfed653df5 Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Sun, 18 Sep 2016 00:12:49 -0400 Subject: [PATCH 1/2] info: print requirements --- Library/Homebrew/cmd/info.rb | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 0310ab6240..04719347fd 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -45,7 +45,7 @@ module Homebrew end else ARGV.named.each_with_index do |f, i| - puts unless i.zero? + puts unless i == 0 begin if f.include?("/") || File.exist?(f) info_formula Formulary.factory(f) @@ -146,6 +146,14 @@ 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}?") + puts "#{type.capitalize}: #{decorate_requirements(reqs)}" unless reqs.to_a.empty? + end + end + unless f.options.empty? ohai "Options" Homebrew.dump_options_for_formula f @@ -161,4 +169,11 @@ module Homebrew end deps_status * ", " end + + def decorate_requirements(requirements) + req_status = requirements.collect do |req| + req.satisfied? ? pretty_installed(req.name) : pretty_uninstalled(req.name) + end + req_status * ", " + end end From 5aaccba34cef9a1766f8f944c276e76569cf9907 Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Sun, 18 Sep 2016 00:37:02 -0400 Subject: [PATCH 2/2] info: include versions and other details in Requirements display --- Library/Homebrew/cmd/info.rb | 10 ++++++---- Library/Homebrew/requirement.rb | 4 ++++ Library/Homebrew/requirements/java_requirement.rb | 15 +++++++++++++++ .../requirements/language_module_requirement.rb | 4 ++++ .../requirements/maximum_macos_requirement.rb | 4 ++++ .../requirements/minimum_macos_requirement.rb | 4 ++++ Library/Homebrew/requirements/perl_requirement.rb | 8 ++++++++ Library/Homebrew/requirements/ruby_requirement.rb | 8 ++++++++ 8 files changed, 53 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 04719347fd..0e4186f3fa 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -45,7 +45,7 @@ module Homebrew end else ARGV.named.each_with_index do |f, i| - puts unless i == 0 + puts unless i.zero? begin if f.include?("/") || File.exist?(f) info_formula Formulary.factory(f) @@ -150,7 +150,8 @@ module Homebrew ohai "Requirements" %w[build required recommended optional].map do |type| reqs = f.requirements.select(&:"#{type}?") - puts "#{type.capitalize}: #{decorate_requirements(reqs)}" unless reqs.to_a.empty? + next if reqs.to_a.empty? + puts "#{type.capitalize}: #{decorate_requirements(reqs)}" end end @@ -172,8 +173,9 @@ module Homebrew def decorate_requirements(requirements) req_status = requirements.collect do |req| - req.satisfied? ? pretty_installed(req.name) : pretty_uninstalled(req.name) + req_s = req.display_s + req.satisfied? ? pretty_installed(req_s) : pretty_uninstalled(req_s) end - req_status * ", " + req_status.join(", ") end end diff --git a/Library/Homebrew/requirement.rb b/Library/Homebrew/requirement.rb index 4ea15774db..f02870ac82 100644 --- a/Library/Homebrew/requirement.rb +++ b/Library/Homebrew/requirement.rb @@ -122,6 +122,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 c868e0f3f8..33fc012299 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 7091a690a7..e20f483619 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 ad60af0637..03ef09e6bc 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 f128a66151..e3108ec81d 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 "OS X #{@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 007134191d..06e36ac0d6 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 873f285bff..a890435a58 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