Merge pull request #19467 from Homebrew/linux_artifact_denylist

linux/cask/installer: use artifact denylist
This commit is contained in:
Mike McQuaid 2025-03-11 16:07:09 +00:00 committed by GitHub
commit efcbeeae3a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -5,22 +5,36 @@ module OS
module Linux
module Cask
module Installer
private
extend T::Helpers
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 }
def check_stanza_os_requirements
return if artifacts.all?(::Cask::Artifact::Font)
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)
return unless artifacts.any? do |artifact|
LINUX_INVALID_ARTIFACTS.include?(artifact.class)
end
raise ::Cask::CaskError, "macOS is required for this software."