Don't return nil from Formula#linked_keg
Doing so was the result of a quick hack to fix the "deps installed as upgrades don't get linked" bug, but it was a mistake. Instead, always return the LinkedKegs entry as a Pathname object, and let callers be responsible for checking that it exists. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
parent
ddde478f63
commit
c1fecab365
@ -12,7 +12,7 @@ module Homebrew extend self
|
||||
end unless ARGV.force?
|
||||
|
||||
ARGV.formulae.each do |f|
|
||||
if File.directory? HOMEBREW_REPOSITORY/"Library/LinkedKegs/#{f.name}"
|
||||
if f.linked_keg.directory?
|
||||
raise "#{f} already installed\nTry: brew upgrade #{f}"
|
||||
end
|
||||
end unless ARGV.force?
|
||||
|
||||
@ -69,8 +69,7 @@ class Formula
|
||||
end
|
||||
|
||||
def linked_keg
|
||||
keg = Pathname.new(HOMEBREW_REPOSITORY/"Library/LinkedKegs"/@name)
|
||||
if keg.exist? then Keg.new(keg.realpath) else nil end
|
||||
HOMEBREW_REPOSITORY/'Library/LinkedKegs'/@name
|
||||
end
|
||||
|
||||
def installed_prefix
|
||||
|
||||
@ -66,7 +66,7 @@ class FormulaInstaller
|
||||
fi.show_header = false
|
||||
oh1 "Installing #{f} dependency: #{dep}"
|
||||
fi.install
|
||||
dep.linked_keg.unlink if dep.linked_keg
|
||||
Keg.new(dep.linked_keg.realpath).unlink if dep.linked_keg.directory?
|
||||
fi.caveats
|
||||
fi.finish
|
||||
end
|
||||
|
||||
@ -46,7 +46,7 @@ class Tab < OpenStruct
|
||||
|
||||
def self.for_formula f
|
||||
f = Formula.factory f unless f.kind_of? Formula
|
||||
path = HOMEBREW_REPOSITORY + 'Library' + 'LinkedKegs' + f.name + 'INSTALL_RECEIPT.json'
|
||||
path = f.linked_keg/'INSTALL_RECEIPT.json'
|
||||
|
||||
if path.exist?
|
||||
self.from_file path
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user