module Hbc::Artifact; end require "hbc/artifact/app" require "hbc/artifact/artifact" # generic 'artifact' stanza require "hbc/artifact/binary" require "hbc/artifact/colorpicker" require "hbc/artifact/font" require "hbc/artifact/input_method" require "hbc/artifact/installer" require "hbc/artifact/internet_plugin" require "hbc/artifact/audio_unit_plugin" require "hbc/artifact/vst_plugin" require "hbc/artifact/vst3_plugin" require "hbc/artifact/nested_container" require "hbc/artifact/pkg" require "hbc/artifact/postflight_block" require "hbc/artifact/preflight_block" require "hbc/artifact/prefpane" require "hbc/artifact/qlplugin" require "hbc/artifact/screen_saver" require "hbc/artifact/service" require "hbc/artifact/stage_only" require "hbc/artifact/suite" require "hbc/artifact/uninstall" require "hbc/artifact/zap" module Hbc::Artifact # NOTE: order is important here, since we want to extract nested containers # before we handle any other artifacts def self.artifacts [ Hbc::Artifact::PreflightBlock, Hbc::Artifact::NestedContainer, Hbc::Artifact::Installer, Hbc::Artifact::App, Hbc::Artifact::Suite, Hbc::Artifact::Artifact, # generic 'artifact' stanza Hbc::Artifact::Colorpicker, Hbc::Artifact::Pkg, Hbc::Artifact::Prefpane, Hbc::Artifact::Qlplugin, Hbc::Artifact::Font, Hbc::Artifact::Service, Hbc::Artifact::StageOnly, Hbc::Artifact::Binary, Hbc::Artifact::InputMethod, Hbc::Artifact::InternetPlugin, Hbc::Artifact::AudioUnitPlugin, Hbc::Artifact::VstPlugin, Hbc::Artifact::Vst3Plugin, Hbc::Artifact::ScreenSaver, Hbc::Artifact::Uninstall, Hbc::Artifact::PostflightBlock, Hbc::Artifact::Zap, ] end def self.for_cask(cask) odebug "Determining which artifacts are present in Cask #{cask}" artifacts.select do |artifact| odebug "Checking for artifact class #{artifact}" artifact.me?(cask) end end end