Don't resolve conflcts for pre-existing symlinks in HOMEBREW_PREFIX

Eg /usr/local/lib/juice/foo points somewhere else where the user has modules that he wants juice to use.

Basically don't error out for stuff that isn't ours.
This commit is contained in:
Max Howell 2009-12-17 18:45:07 +00:00
parent 6435413656
commit 1deb3a1fea

View File

@ -28,6 +28,8 @@ class Keg <Pathname
raise "#{to_s} is not a directory" unless directory?
end
class NotAKegError <RuntimeError; end
# if path is a file in a keg then this will return the containing Keg object
def self.for path
path = path.realpath
@ -35,7 +37,7 @@ class Keg <Pathname
return Keg.new(path) if path.parent.parent == HOMEBREW_CELLAR.realpath
path = path.parent.realpath # realpath() prevents root? failing
end
raise "#{path} is not inside a keg"
raise NotAKegError, "#{path} is not inside a keg"
end
def uninstall
@ -94,6 +96,8 @@ protected
keg.link_dir(src) { :mkpath }
return true
end
rescue NotAKegError
puts "Won't resolve conflicts for symlink #{dst} as it doesn't resolve into the Cellar" if ARGV.verbose?
end
# symlinks the contents of self+foo recursively into /usr/local/foo