linux/cask/installer: use artifact denylist
Otherwise, we end up preventing the use of e.g. `preflight`, `uninstall` that may all work fine on Linux.
This commit is contained in:
		
							parent
							
								
									b35b9eb1a8
								
							
						
					
					
						commit
						22f72cb7d2
					
				@ -5,22 +5,36 @@ module OS
 | 
				
			|||||||
  module Linux
 | 
					  module Linux
 | 
				
			||||||
    module Cask
 | 
					    module Cask
 | 
				
			||||||
      module Installer
 | 
					      module Installer
 | 
				
			||||||
        private
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        extend T::Helpers
 | 
					        extend T::Helpers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        requires_ancestor { ::Cask::Installer }
 | 
					        requires_ancestor { ::Cask::Installer }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        LINUX_INVALID_ARTIFACTS = [
 | 
				
			||||||
 | 
					          ::Cask::Artifact::App,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::AudioUnitPlugin,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Colorpicker,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Dictionary,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::InputMethod,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Installer,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::InternetPlugin,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::KeyboardLayout,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Mdimporter,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Pkg,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Prefpane,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Qlplugin,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::ScreenSaver,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Service,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Suite,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::VstPlugin,
 | 
				
			||||||
 | 
					          ::Cask::Artifact::Vst3Plugin,
 | 
				
			||||||
 | 
					        ].freeze
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        sig { void }
 | 
					        sig { void }
 | 
				
			||||||
        def check_stanza_os_requirements
 | 
					        def check_stanza_os_requirements
 | 
				
			||||||
          return if artifacts.all?(::Cask::Artifact::Font)
 | 
					          return unless artifacts.any? do |artifact|
 | 
				
			||||||
 | 
					            LINUX_INVALID_ARTIFACTS.include?(artifact.class)
 | 
				
			||||||
          install_artifacts = artifacts.reject { |artifact| artifact.instance_of?(::Cask::Artifact::Zap) }
 | 
					 | 
				
			||||||
          return if install_artifacts.all? do |artifact|
 | 
					 | 
				
			||||||
            artifact.is_a?(::Cask::Artifact::Binary) ||
 | 
					 | 
				
			||||||
            artifact.is_a?(::Cask::Artifact::ShellCompletion) ||
 | 
					 | 
				
			||||||
            artifact.is_a?(::Cask::Artifact::Artifact) ||
 | 
					 | 
				
			||||||
            artifact.is_a?(::Cask::Artifact::Manpage)
 | 
					 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          raise ::Cask::CaskError, "macOS is required for this software."
 | 
					          raise ::Cask::CaskError, "macOS is required for this software."
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user