aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorAdam Vandenberg2010-09-22 12:32:16 -0700
committerAdam Vandenberg2010-09-29 21:55:44 -0700
commitdbd6de0d5da87ac79f65115212d20daf9436a6e2 (patch)
tree4db116d00f36b91ae9ece44a351c28431f0fe842 /Library/Homebrew
parent3dc86e2d5b0d6c56118be7ae2a8b78e923488832 (diff)
downloadhomebrew-dbd6de0d5da87ac79f65115212d20daf9436a6e2.tar.bz2
Move resolve_alias from ARGV to Formula
Also, call this function from a few places where the code was duplicated.
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/brew.h.rb7
-rw-r--r--Library/Homebrew/extend/ARGV.rb14
-rw-r--r--Library/Homebrew/formula.rb9
3 files changed, 15 insertions, 15 deletions
diff --git a/Library/Homebrew/brew.h.rb b/Library/Homebrew/brew.h.rb
index a35ca0b49..2eb6f8e2e 100644
--- a/Library/Homebrew/brew.h.rb
+++ b/Library/Homebrew/brew.h.rb
@@ -39,9 +39,9 @@ def __make url, name
raise "#{path} already exists" if path.exist?
if Formula.aliases.include? name and not ARGV.force?
- realname = HOMEBREW_REPOSITORY.join("Library/Aliases/#{name}").realpath.basename('.rb')
+ realname = Formula.resolve_alias(name)
raise <<-EOS.undent
- The formula #{realname} is already aliased to #{name}
+ "#{name}" is an alias for formula "#{realname}".
Please check that you are not creating a duplicate.
To force creation use --force.
EOS
@@ -430,8 +430,7 @@ def search_brews text
# Filter out aliases when the full name was also found
results.reject do |alias_name|
if aliases.include? alias_name
- resolved_name = (HOMEBREW_REPOSITORY+"Library/Aliases/#{alias_name}").readlink.basename('.rb').to_s
- results.include? resolved_name
+ results.include? Formula.resolve_alias(alias_name)
end
end
end
diff --git a/Library/Homebrew/extend/ARGV.rb b/Library/Homebrew/extend/ARGV.rb
index b52230d1e..9c6aaf1f0 100644
--- a/Library/Homebrew/extend/ARGV.rb
+++ b/Library/Homebrew/extend/ARGV.rb
@@ -13,15 +13,16 @@ module HomebrewArgvExtension
def formulae
require 'formula'
- @formulae ||= downcased_unique_named.map{ |name| Formula.factory(resolve_alias(name)) }
+ @formulae ||= downcased_unique_named.map{ |name| Formula.factory(Formula.resolve_alias(name)) }
raise FormulaUnspecifiedError if @formulae.empty?
@formulae
end
def kegs
require 'keg'
+ require 'formula'
@kegs ||= downcased_unique_named.collect do |name|
- d = HOMEBREW_CELLAR + resolve_alias(name)
+ d = HOMEBREW_CELLAR + Formula.resolve_alias(name)
dirs = d.children.select{ |pn| pn.directory? } rescue []
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
@@ -114,15 +115,6 @@ module HomebrewArgvExtension
EOS
end
- def resolve_alias name
- aka = HOMEBREW_REPOSITORY+"Library/Aliases/#{name}"
- if aka.file?
- aka.realpath.basename('.rb').to_s
- else
- name
- end
- end
-
private
def downcased_unique_named
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index f8298624c..ebc626a45 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -266,6 +266,15 @@ class Formula
Dir["#{HOMEBREW_REPOSITORY}/Library/Aliases/*"].map{ |f| File.basename f }.sort
end
+ def self.resolve_alias name
+ aka = HOMEBREW_REPOSITORY+"Library/Aliases/#{name}"
+ if aka.file?
+ aka.realpath.basename('.rb').to_s
+ else
+ name
+ end
+ end
+
def self.factory name
return name if name.kind_of? Formula
path = Pathname.new(name)