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