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?
|
end unless ARGV.force?
|
||||||
|
|
||||||
ARGV.formulae.each do |f|
|
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}"
|
raise "#{f} already installed\nTry: brew upgrade #{f}"
|
||||||
end
|
end
|
||||||
end unless ARGV.force?
|
end unless ARGV.force?
|
||||||
|
|||||||
@ -69,8 +69,7 @@ class Formula
|
|||||||
end
|
end
|
||||||
|
|
||||||
def linked_keg
|
def linked_keg
|
||||||
keg = Pathname.new(HOMEBREW_REPOSITORY/"Library/LinkedKegs"/@name)
|
HOMEBREW_REPOSITORY/'Library/LinkedKegs'/@name
|
||||||
if keg.exist? then Keg.new(keg.realpath) else nil end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def installed_prefix
|
def installed_prefix
|
||||||
|
|||||||
@ -66,7 +66,7 @@ class FormulaInstaller
|
|||||||
fi.show_header = false
|
fi.show_header = false
|
||||||
oh1 "Installing #{f} dependency: #{dep}"
|
oh1 "Installing #{f} dependency: #{dep}"
|
||||||
fi.install
|
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.caveats
|
||||||
fi.finish
|
fi.finish
|
||||||
end
|
end
|
||||||
|
|||||||
@ -46,7 +46,7 @@ class Tab < OpenStruct
|
|||||||
|
|
||||||
def self.for_formula f
|
def self.for_formula f
|
||||||
f = Formula.factory f unless f.kind_of? Formula
|
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?
|
if path.exist?
|
||||||
self.from_file path
|
self.from_file path
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user