diff --git a/Library/Homebrew/cask/artifact/symlinked.rb b/Library/Homebrew/cask/artifact/symlinked.rb index 7acb7e9694d5a1d1e13c3b5b0b64e89b95bc216d..b50c104dc44f36243e927eee2e8ef83a9b53f971 100644 --- a/Library/Homebrew/cask/artifact/symlinked.rb +++ b/Library/Homebrew/cask/artifact/symlinked.rb @@ -44,10 +44,10 @@ module Cask "source '#{source}' is not there." end - if target.exist? && !target.symlink? + if target.exist? raise CaskError, - "It seems there is already #{self.class.english_article} " \ - "#{self.class.english_name} at '#{target}'; not linking." + "It seems there already exists #{self.class.english_article} " \ + "#{self.class.english_name} at '#{target}'; not overwriting." end ohai "Linking #{self.class.english_name} '#{source.basename}' to '#{target}'." diff --git a/Library/Homebrew/test/cask/artifact/binary_spec.rb b/Library/Homebrew/test/cask/artifact/binary_spec.rb index d905e8d8f02aa1f45cea131fa1bf531d634d9392..83098af32ab0057e4a5ee81b9b1ed3f090d6bdeb 100644 --- a/Library/Homebrew/test/cask/artifact/binary_spec.rb +++ b/Library/Homebrew/test/cask/artifact/binary_spec.rb @@ -67,14 +67,16 @@ describe Cask::Artifact::Binary, :cask do expect(expected_path).not_to be :symlink? end - it "clobbers an existing symlink" do + it "avoids clobbering an existing symlink" do expected_path.make_symlink("/tmp") - artifacts.each do |artifact| - artifact.install_phase(command: NeverSudoSystemCommand, force: false) - end + expect { + artifacts.each do |artifact| + artifact.install_phase(command: NeverSudoSystemCommand, force: false) + end + }.to raise_error(Cask::CaskError) - expect(File.readlink(expected_path)).not_to eq("/tmp") + expect(File.readlink(expected_path)).to eq("/tmp") end it "creates parent directory if it doesn't exist" do