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