ARGV#kegs: using installed_prefix to locate keg
This commit is contained in:
parent
f811a45fe4
commit
7e14ec0ba6
@ -49,7 +49,7 @@ module HomebrewArgvExtension
|
|||||||
require "keg"
|
require "keg"
|
||||||
require "formula"
|
require "formula"
|
||||||
@kegs ||= downcased_unique_named.collect do |name|
|
@kegs ||= downcased_unique_named.collect do |name|
|
||||||
rack = Formulary.to_rack(name)
|
rack = Formulary.to_rack(name.downcase)
|
||||||
|
|
||||||
dirs = rack.directory? ? rack.subdirs : []
|
dirs = rack.directory? ? rack.subdirs : []
|
||||||
|
|
||||||
@ -65,10 +65,18 @@ module HomebrewArgvExtension
|
|||||||
Keg.new(linked_keg_ref.resolved_path)
|
Keg.new(linked_keg_ref.resolved_path)
|
||||||
elsif dirs.length == 1
|
elsif dirs.length == 1
|
||||||
Keg.new(dirs.first)
|
Keg.new(dirs.first)
|
||||||
elsif (prefix = (name.include?("/") ? Formulary.factory(name) : Formulary.from_rack(rack)).prefix).directory?
|
|
||||||
Keg.new(prefix)
|
|
||||||
else
|
else
|
||||||
raise MultipleVersionsInstalledError.new(rack.basename)
|
f = if name.include?("/") || File.exist?(name)
|
||||||
|
Formulary.factory(name)
|
||||||
|
else
|
||||||
|
Formulary.from_rack(rack)
|
||||||
|
end
|
||||||
|
|
||||||
|
if (prefix = f.installed_prefix).directory?
|
||||||
|
Keg.new(prefix)
|
||||||
|
else
|
||||||
|
raise MultipleVersionsInstalledError.new(rack.basename)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
rescue FormulaUnavailableError
|
rescue FormulaUnavailableError
|
||||||
raise <<-EOS.undent
|
raise <<-EOS.undent
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user