Move resolve_alias from ARGV to Formula
Also, call this function from a few places where the code was duplicated.
This commit is contained in:
parent
18f9969b65
commit
bb01afce4c
@ -39,9 +39,9 @@ def __make url, name
|
|||||||
raise "#{path} already exists" if path.exist?
|
raise "#{path} already exists" if path.exist?
|
||||||
|
|
||||||
if Formula.aliases.include? name and not ARGV.force?
|
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
|
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.
|
Please check that you are not creating a duplicate.
|
||||||
To force creation use --force.
|
To force creation use --force.
|
||||||
EOS
|
EOS
|
||||||
@ -430,8 +430,7 @@ def search_brews text
|
|||||||
# Filter out aliases when the full name was also found
|
# Filter out aliases when the full name was also found
|
||||||
results.reject do |alias_name|
|
results.reject do |alias_name|
|
||||||
if aliases.include? alias_name
|
if aliases.include? alias_name
|
||||||
resolved_name = (HOMEBREW_REPOSITORY+"Library/Aliases/#{alias_name}").readlink.basename('.rb').to_s
|
results.include? Formula.resolve_alias(alias_name)
|
||||||
results.include? resolved_name
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -13,15 +13,16 @@ module HomebrewArgvExtension
|
|||||||
|
|
||||||
def formulae
|
def formulae
|
||||||
require 'formula'
|
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?
|
raise FormulaUnspecifiedError if @formulae.empty?
|
||||||
@formulae
|
@formulae
|
||||||
end
|
end
|
||||||
|
|
||||||
def kegs
|
def kegs
|
||||||
require 'keg'
|
require 'keg'
|
||||||
|
require 'formula'
|
||||||
@kegs ||= downcased_unique_named.collect do |name|
|
@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 []
|
dirs = d.children.select{ |pn| pn.directory? } rescue []
|
||||||
raise "No such keg: #{HOMEBREW_CELLAR}/#{name}" 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
|
raise "#{name} has multiple installed versions" if dirs.length > 1
|
||||||
@ -114,15 +115,6 @@ module HomebrewArgvExtension
|
|||||||
EOS
|
EOS
|
||||||
end
|
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
|
private
|
||||||
|
|
||||||
def downcased_unique_named
|
def downcased_unique_named
|
||||||
|
|||||||
@ -266,6 +266,15 @@ class Formula
|
|||||||
Dir["#{HOMEBREW_REPOSITORY}/Library/Aliases/*"].map{ |f| File.basename f }.sort
|
Dir["#{HOMEBREW_REPOSITORY}/Library/Aliases/*"].map{ |f| File.basename f }.sort
|
||||||
end
|
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
|
def self.factory name
|
||||||
return name if name.kind_of? Formula
|
return name if name.kind_of? Formula
|
||||||
path = Pathname.new(name)
|
path = Pathname.new(name)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user