homebrew-cask/doc/cask_language_reference/all_stanzas.md

8.4 KiB

All stanzas

Required Stanzas

Each of the following stanzas is required for every Cask.

name multiple occurrences allowed? value
version no application version; give value of :latest if versioned downloads are not offered (see also Version Stanza Details)
sha256 no SHA-256 checksum of the file downloaded from url, calculated by the command shasum -a 256 <file>. Can be suppressed by using the special value :no_check (see also Checksum Stanza Details)
url no URL to the .dmg/.zip/.tgz/.tbz2 file that contains the application.
A comment should be added if the hostnames in the url and homepage stanzas differ. Block syntax should be used for URLs that change on every visit.
See URL Stanza Details for more information.
name yes a string providing the full and proper name defined by the vendor (see also Name Stanza Details)
homepage no application homepage; used for the brew cask home command

At Least One Artifact Stanza Is Also Required

Each Cask must declare one or more artifacts (i.e. something to install).

name multiple occurrences allowed? value
app yes relative path to an .app that should be moved into the /Applications folder on installation (see also App Stanza Details)
pkg yes relative path to a .pkg file containing the distribution (see also Pkg Stanza Details)
binary           yes                           relative path to a Binary that should be linked into the $(brew --prefix)/bin folder (typically /usr/local/bin) on installation (see also Binary Stanza Details)
colorpicker yes relative path to a ColorPicker plugin that should be moved into the ~/Library/ColorPickers folder on installation
dictionary yes relative path to a Dictionary that should be moved into the ~/Library/Dictionaries folder on installation
font yes relative path to a Font that should be moved into the ~/Library/Fonts folder on installation
input_method yes relative path to a Input Method that should be moved into the ~/Library/Input Methods folder on installation
internet_plugin yes relative path to a Service that should be moved into the ~/Library/Internet Plug-Ins folder on installation
manpage           yes                           relative path to a Man Page that should be linked into the respective man page folder on installation, e.g. /usr/local/share/man/man3 for my_app.3
prefpane yes relative path to a Preference Pane that should be moved into the ~/Library/PreferencePanes folder on installation
qlplugin yes relative path to a QuickLook Plugin that should be moved into the ~/Library/QuickLook folder on installation
mdimporter yes relative path to a Spotlight metadata importer that should be moved into the ~/Library/Spotlight folder on installation
screen_saver yes relative path to a Screen Saver that should be moved into the ~/Library/Screen Savers folder on installation
service yes relative path to a Service that should be moved into the ~/Library/Services folder on installation
audio_unit_plugin yes relative path to an Audio Unit plugin that should be moved into the ~/Library/Audio/Components folder on installation
vst_plugin yes relative path to a VST Plugin that should be moved into the ~/Library/Audio/VST folder on installation
vst3_plugin yes relative path to a VST3 Plugin that should be moved into the ~/Library/Audio/VST3 folder on installation
suite yes relative path to a containing directory that should be moved into the /Applications folder on installation (see also Suite Stanza Details)
artifact yes relative path to an arbitrary path that should be moved on installation. Must provide an absolute path as a target (example alcatraz.rb). This is only for unusual cases. The app stanza is strongly preferred when moving .app bundles.
installer yes describes an executable which must be run to complete the installation (see Installer Stanza Details)
stage_only no true. Assert that the Cask contains no activatable artifacts.

Optional Stanzas

name multiple occurrences allowed? value
uninstall yes procedures to uninstall a Cask. Optional unless the pkg stanza is used. (see also Uninstall Stanza Details)
zap yes additional procedures for a more complete uninstall, including user files and shared resources (see also Zap Stanza Details)
appcast no a URL providing an appcast feed to find updates for this Cask (see also Appcast Stanza Details)
depends_on yes a list of dependencies and requirements for this Cask (see also Depends_on Stanza Details)
conflicts_with yes a list of conflicts with this Cask (not yet functional see also Conflicts_with Stanza Details)
caveats yes a string or Ruby block providing the user with Cask-specific information at install time (see also Caveats Stanza Details)
preflight yes a Ruby block containing preflight install operations (needed only in very rare cases)
postflight yes a Ruby block containing postflight install operations (see also Postflight Stanza Details)
uninstall_preflight yes a Ruby block containing preflight uninstall operations (needed only in very rare cases)
uninstall_postflight yes a Ruby block containing postflight uninstall operations
language required a Ruby block, called with language code parameters, containing other stanzas and/or a return value (see also Language Stanza Details)
container nested: no relative path to an inner container that must be extracted before moving on with the installation; this allows us to support dmg inside tar, zip inside dmg, etc.
container type: no a symbol to override container-type autodetect. May be one of: :air, :bz2, :cab, :dmg, :generic_unar, :gzip, :otf, :pkg, :rar, :seven_zip, :sit, :tar, :ttf, :xar, :zip, :naked. (example parse.rb)
auto_updates no true. Assert the Cask artifacts auto-update. Use if Check for Updates… or similar is present in app menu, but not if it only opens a webpage and does not do the download and installation for you.