Don't let broken symlinks halt linking
This commit is contained in:
parent
f6b5c83482
commit
e9ee640024
@ -298,7 +298,7 @@ class Pathname
|
||||
# NOTE only system ln -s will create RELATIVE symlinks
|
||||
quiet_system 'ln', '-s', src.relative_path_from(self.dirname), self.basename
|
||||
if not $?.success?
|
||||
if symlink? && exist? || symlink?
|
||||
if symlink? && exist?
|
||||
raise <<-EOS.undent
|
||||
Could not symlink file: #{src.expand_path}
|
||||
Target #{self} already exists as a symlink to #{readlink}.
|
||||
@ -320,6 +320,9 @@ class Pathname
|
||||
To list all files that would be deleted:
|
||||
brew link --overwrite --dry-run formula_name
|
||||
EOS
|
||||
elsif symlink?
|
||||
unlink
|
||||
make_relative_symlink(src)
|
||||
elsif !dirname.writable_real?
|
||||
raise <<-EOS.undent
|
||||
Could not symlink file: #{src.expand_path}
|
||||
|
||||
@ -60,6 +60,11 @@ class LinkTests < Test::Unit::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
def test_link_ignores_broken_symlinks_at_target
|
||||
ln_s "/some/nonexistent/path", HOMEBREW_PREFIX/"bin/helloworld"
|
||||
shutup { @keg.link }
|
||||
end
|
||||
|
||||
def test_link_overwrite
|
||||
touch HOMEBREW_PREFIX/"bin/helloworld"
|
||||
@mode.overwrite = true
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user