Merge pull request #8370 from miccal/cask_symlinked

cask/artifact/symlinked: do not overwrite files or symbolic links
This commit is contained in:
Markus Reiter 2020-08-20 21:03:19 +02:00 committed by GitHub
commit 15279d78b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 8 deletions

View File

@ -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}'."

View File

@ -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