31 lines
780 B
Ruby
31 lines
780 B
Ruby
![]() |
# typed: strict
|
||
|
# frozen_string_literal: true
|
||
|
|
||
|
require "cask/macos"
|
||
|
|
||
|
module OS
|
||
|
module Mac
|
||
|
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: ["-h", "-f", "-s", "--", source, target],
|
||
|
sudo: !target.dirname.writable?
|
||
|
|
||
|
add_altname_metadata(source, target.basename, command:)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
Cask::Artifact::Symlinked.prepend(OS::Mac::Cask::Artifact::Symlinked)
|