diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index 5aa198f316..4a20dc7cb5 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -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? diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 28592eb725..512dafaf04 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -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 diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 9e52b9e3b7..469db2db3c 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -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 diff --git a/Library/Homebrew/tab.rb b/Library/Homebrew/tab.rb index cf457f6743..c22998dc3e 100644 --- a/Library/Homebrew/tab.rb +++ b/Library/Homebrew/tab.rb @@ -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