diff options
| -rw-r--r-- | Library/Homebrew/extend/ARGV.rb | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb index e87048c0f..352f5d03d 100644 --- a/Library/Homebrew/extend/ARGV.rb +++ b/Library/Homebrew/extend/ARGV.rb @@ -6,21 +6,24 @@ module HomebrewArgvExtension def named @named ||= reject{|arg| arg[0..0] == '-'} end + def options select {|arg| arg[0..0] == '-'} end + def formulae require 'formula' - @formulae ||= downcased_unique_named.collect {|name| Formula.factory name} + @formulae ||= downcased_unique_named.map{ |name| Formula.factory(resolve_alias(name)) } raise FormulaUnspecifiedError if @formulae.empty? @formulae end + def kegs require 'keg' @kegs ||= downcased_unique_named.collect do |name| - d=HOMEBREW_CELLAR+name + d = HOMEBREW_CELLAR + resolve_alias(name) dirs = d.children.select{ |pn| pn.directory? } rescue [] - raise "#{name} is not installed" if not d.directory? or dirs.length == 0 + raise "No such keg: #{HOMEBREW_CELLAR}/#{name}" if not d.directory? or dirs.length == 0 raise "#{name} has multiple installed versions" if dirs.length > 1 Keg.new dirs.first end @@ -102,6 +105,15 @@ module HomebrewArgvExtension private def downcased_unique_named - @downcased_unique_named ||= named.collect{|arg| arg.downcase}.uniq + @downcased_unique_named ||= named.map(&:downcase).uniq + end + + def resolve_alias name + aka = HOMEBREW_REPOSITORY+"Library/Aliases/#{name}" + if aka.file? + aka.realpath.basename('.rb').to_s + else + name + end end end |
