3.1 KiB
caveats
Sometimes there are particularities with the installation of a piece of software that cannot or should not be handled programatically by Homebrew-Cask. In those instances, caveats is the way to inform the user. Information in caveats is displayed when a cask is invoked with either install or info.
To avoid flooding users with too many messages (thus desensitising them to the important ones), caveats should be used sparingly and exclusively for installation-related matters. If you’re not sure a caveat you find pertinent is installation-related or not, ask a maintainer. As a general rule, if your case isn’t already covered in our comprehensive caveats Mini-DSL, it’s unlikely to be accepted.
caveats as a String
When caveats is a string, it is evaluated at compile time. The following methods are available for interpolation if caveats is placed in its customary position at the end of the Cask:
| method | description |
|---|---|
token |
the Cask token |
version |
the Cask version |
homepage |
the Cask homepage |
caskroom_path |
the containing directory for all staged Casks, typically /usr/local/Caskroom (only available with block form) |
staged_path |
the staged location for this Cask, including version number, eg /usr/local/Caskroom/adium/1.5.10 (only available with block form) |
Example:
caveats "Using #{token} is hazardous to your health."
caveats as a Block
When caveats is a Ruby block, evaluation is deferred until install time. Within a block you may refer to the @cask instance variable, and invoke any method available on @cask.
caveats Mini-DSL
There is a mini-DSL available within caveats blocks.
The following methods may be called to generate standard warning messages:
| method | description |
|---|---|
path_environment_variable(path) |
users should make sure path is in their $PATH environment variable |
zsh_path_helper(path) |
zsh users must take additional steps to make sure path is in their $PATH environment variable |
depends_on_java(version) |
users should make sure they have the specified version of java installed. version can be exact (e.g. 6), a minimum (e.g. 7+), or omitted (when any version works). |
logout |
users should log out and log back in to complete installation |
reboot |
users should reboot to complete installation |
files_in_usr_local |
the Cask installs files to /usr/local, which may confuse Homebrew |
discontinued |
all software development has been officially discontinued upstream |
free_license(web_page) |
users may get an official license to use the software at web_page |
malware(radar_number) |
app has been reported to bundle malware. See the FAQ for the necessary steps. |
Example:
caveats do
path_environment_variable '/usr/texbin'
end