diff options
| author | Max Howell | 2010-03-09 02:09:46 +0000 |
|---|---|---|
| committer | Adam Vandenberg | 2010-08-07 18:08:49 -0700 |
| commit | 28504229aa7a1389fa60bbfb9b987344d608e925 (patch) | |
| tree | 0af87072cad0c5c23558511215905632de8647f5 | |
| parent | 2ac2dbb591b160baaa62322463014b797c6067eb (diff) | |
| download | brew-28504229aa7a1389fa60bbfb9b987344d608e925.tar.bz2 | |
Resolve aliases in ARGV extension.
* This allows most brew commands to automatically accept aliases.
| -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 |
