27 lines
714 B
Ruby
27 lines
714 B
Ruby
# typed: strict
|
|
# frozen_string_literal: true
|
|
|
|
module OS
|
|
module Linux
|
|
module Cask
|
|
module Artifact
|
|
module Symlinked
|
|
extend T::Helpers
|
|
|
|
requires_ancestor { ::Cask::Artifact::Symlinked }
|
|
|
|
sig { params(command: T.class_of(SystemCommand)).void }
|
|
def create_filesystem_link(command)
|
|
::Cask::Utils.gain_permissions_mkpath(target.dirname, command:)
|
|
|
|
command.run! "/bin/ln", args: ["--no-dereference", "--force", "--symbolic", source, target],
|
|
sudo: !target.dirname.writable?
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
Cask::Artifact::Symlinked.prepend(OS::Linux::Cask::Artifact::Symlinked)
|