Fix markdown linter errors

v0.13 of the `markdownlint` gem just got released and it has
a few new rules which are docs ended up failing. This fixes
those linter errors so that CI is no longer red.

Rules:
MD055 - Tables: Each row must start and end with a '|'
MD057 - Tables: In the second row every column must have at least '---',
        possibly surrounded with alignment ':' chars
This commit is contained in:
apainintheneck 2023-10-02 22:42:39 -07:00
parent c502eb3ca9
commit 2030f07132
4 changed files with 192 additions and 192 deletions

View File

@ -166,23 +166,23 @@ Fill in the following stanzas for your cask:
| name | value | | name | value |
| ------------------ | ----------- | | ------------------ | ----------- |
| `version` | application version | `version` | application version |
| `sha256` | 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 [`sha256` Stanza Details](Cask-Cookbook.md#stanza-sha256)) | `sha256` | 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 [`sha256` Stanza Details](Cask-Cookbook.md#stanza-sha256)) |
| `url` | URL to the `.dmg`/`.zip`/`.tgz`/`.tbz2` file that contains the application.<br />A [`verified` parameter](Cask-Cookbook.md#when-url-and-homepage-domains-differ-add-verified) must be added if the hostnames in the `url` and `homepage` stanzas differ. [Block syntax](Cask-Cookbook.md#using-a-block-to-defer-code-execution) is available for URLs that change on every visit. | `url` | URL to the `.dmg`/`.zip`/`.tgz`/`.tbz2` file that contains the application.<br />A [`verified` parameter](Cask-Cookbook.md#when-url-and-homepage-domains-differ-add-verified) must be added if the hostnames in the `url` and `homepage` stanzas differ. [Block syntax](Cask-Cookbook.md#using-a-block-to-defer-code-execution) is available for URLs that change on every visit. |
| `name` | the full and proper name defined by the vendor, and any useful alternate names (see [`name` Stanza Details](Cask-Cookbook.md#stanza-name)) | `name` | the full and proper name defined by the vendor, and any useful alternate names (see [`name` Stanza Details](Cask-Cookbook.md#stanza-name)) |
| `desc` | one-line description of the software (see [`desc` Stanza Details](Cask-Cookbook.md#stanza-desc)) | `desc` | one-line description of the software (see [`desc` Stanza Details](Cask-Cookbook.md#stanza-desc)) |
| `homepage` | application homepage; used for the `brew home` command | `homepage` | application homepage; used for the `brew home` command |
| `app` | relative path to an `.app` bundle that should be moved into the `/Applications` folder on installation (see [`app` Stanza Details](Cask-Cookbook.md#stanza-app)) | `app` | relative path to an `.app` bundle that should be moved into the `/Applications` folder on installation (see [`app` Stanza Details](Cask-Cookbook.md#stanza-app)) |
Other commonly used stanzas are: Other commonly used stanzas are:
| name | value | | name | value |
| ------------------ | ----------- | | ------------------ | ----------- |
| `livecheck` | Ruby block describing how to find updates for this cask (see [`livecheck` Stanza Details](Cask-Cookbook.md#stanza-livecheck)) | `livecheck` | Ruby block describing how to find updates for this cask (see [`livecheck` Stanza Details](Cask-Cookbook.md#stanza-livecheck)) |
| `pkg` | relative path to a `.pkg` file containing the distribution (see [`pkg` Stanza Details](Cask-Cookbook.md#stanza-pkg)) | `pkg` | relative path to a `.pkg` file containing the distribution (see [`pkg` Stanza Details](Cask-Cookbook.md#stanza-pkg)) |
| `caveats` | string or Ruby block providing the user with cask-specific information at install time (see [`caveats` Stanza Details](Cask-Cookbook.md#stanza-caveats)) | `caveats` | string or Ruby block providing the user with cask-specific information at install time (see [`caveats` Stanza Details](Cask-Cookbook.md#stanza-caveats)) |
| `uninstall` | procedures to uninstall a cask; optional unless the `pkg` stanza is used (see [`uninstall` Stanza Details](Cask-Cookbook.md#stanza-uninstall)) | `uninstall` | procedures to uninstall a cask; optional unless the `pkg` stanza is used (see [`uninstall` Stanza Details](Cask-Cookbook.md#stanza-uninstall)) |
| `zap` | additional procedures for a more complete uninstall, including configuration files and shared resources (see [`zap` Stanza Details](Cask-Cookbook.md#stanza-zap)) | `zap` | additional procedures for a more complete uninstall, including configuration files and shared resources (see [`zap` Stanza Details](Cask-Cookbook.md#stanza-zap)) |
Additional [`artifact` stanzas](Cask-Cookbook.md#at-least-one-artifact-stanza-is-also-required) may be needed for special use cases. Even more special-use stanzas are listed at [Optional Stanzas](Cask-Cookbook.md#optional-stanzas). Additional [`artifact` stanzas](Cask-Cookbook.md#at-least-one-artifact-stanza-is-also-required) may be needed for special use cases. Even more special-use stanzas are listed at [Optional Stanzas](Cask-Cookbook.md#optional-stanzas).

View File

@ -107,12 +107,12 @@ Each of the following stanzas is required for every cask.
| name | multiple occurrences allowed? | value | | name | multiple occurrences allowed? | value |
| ---------------------------- | :---------------------------: | ----- | | ---------------------------- | :---------------------------: | ----- |
| [`version`](#stanza-version) | no | Application version. | [`version`](#stanza-version) | no | Application version. |
| [`sha256`](#stanza-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`. | [`sha256`](#stanza-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`. |
| [`url`](#stanza-url) | no | URL to the `.dmg`/`.zip`/`.tgz`/`.tbz2` file that contains the application. A [comment](#when-url-and-homepage-domains-differ-add-verified) should be added if the domains in the `url` and `homepage` stanzas differ. Block syntax should be used for URLs that change on every visit. | [`url`](#stanza-url) | no | URL to the `.dmg`/`.zip`/`.tgz`/`.tbz2` file that contains the application. A [comment](#when-url-and-homepage-domains-differ-add-verified) should be added if the domains in the `url` and `homepage` stanzas differ. Block syntax should be used for URLs that change on every visit. |
| [`name`](#stanza-name) | yes | String providing the full and proper name defined by the vendor. | [`name`](#stanza-name) | yes | String providing the full and proper name defined by the vendor. |
| [`desc`](#stanza-desc) | no | One-line description of the cask. Shown when running `brew info`. | [`desc`](#stanza-desc) | no | One-line description of the cask. Shown when running `brew info`. |
| `homepage` | no | Application homepage; used for the `brew home` command. | `homepage` | no | Application homepage; used for the `brew home` command. |
### At least one artifact stanza is also required ### At least one artifact stanza is also required
@ -120,47 +120,47 @@ Each cask must declare one or more *artifacts* (i.e. something to install).
| name | multiple occurrences allowed? | value | | name | multiple occurrences allowed? | value |
| -------------------------------- | :---------------------------: | ----- | | -------------------------------- | :---------------------------: | ----- |
| [`app`](#stanza-app) | yes | Relative path to an `.app` that should be moved into the `/Applications` folder on installation. | [`app`](#stanza-app) | yes | Relative path to an `.app` that should be moved into the `/Applications` folder on installation. |
| [`suite`](#stanza-suite) | yes | Relative path to a containing directory that should be moved into the `/Applications` folder on installation. | [`suite`](#stanza-suite) | yes | Relative path to a containing directory that should be moved into the `/Applications` folder on installation. |
| [`pkg`](#stanza-pkg) | yes | Relative path to a `.pkg` file containing the distribution. | [`pkg`](#stanza-pkg) | yes | Relative path to a `.pkg` file containing the distribution. |
| [`installer`](#stanza-installer) | yes | Describes an executable which must be run to complete the installation. | [`installer`](#stanza-installer) | yes | Describes an executable which must be run to complete the installation. |
| [`binary`](#stanza-binary) | yes | Relative path to a Binary that should be linked into the `$(brew --prefix)/bin` folder on installation. | [`binary`](#stanza-binary) | yes | Relative path to a Binary that should be linked into the `$(brew --prefix)/bin` 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`. | `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`. |
| `colorpicker` | yes | Relative path to a ColorPicker plugin that should be moved into the `~/Library/ColorPickers` folder on installation. | `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. | `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. | `font` | yes | Relative path to a Font that should be moved into the `~/Library/Fonts` folder on installation. |
| `input_method` | yes | Relative path to an Input Method that should be moved into the `~/Library/Input Methods` folder on installation. | `input_method` | yes | Relative path to an Input Method that should be moved into the `~/Library/Input Methods` folder on installation. |
| `internet_plugin` | yes | Relative path to an Internet Plugin that should be moved into the `~/Library/Internet Plug-Ins` folder on installation. | `internet_plugin` | yes | Relative path to an Internet Plugin that should be moved into the `~/Library/Internet Plug-Ins` folder on installation. |
| `keyboard_layout` | yes | Relative path to a Keyboard Layout that should be moved into the `/Library/Keyboard Layouts` folder on installation. | `keyboard_layout` | yes | Relative path to a Keyboard Layout that should be moved into the `/Library/Keyboard Layouts` folder on installation. |
| `prefpane` | yes | Relative path to a Preference Pane that should be moved into the `~/Library/PreferencePanes` folder on installation. | `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. | `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. | `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. | `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. | `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. | `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. | `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. | `vst3_plugin` | yes | Relative path to a VST3 Plugin that should be moved into the `~/Library/Audio/VST3` folder on installation. |
| `artifact` | yes | Relative path to an arbitrary path that should be moved on installation. Must provide an absolute path as a `target`. (Example: [free-gpgmail.rb](https://github.com/Homebrew/homebrew-cask/blob/b3c438d608d9702380edf10d5495e0727cf17108/Casks/f/free-gpgmail.rb#L44)) This is only for unusual cases; the `app` stanza is strongly preferred when moving `.app` bundles. | `artifact` | yes | Relative path to an arbitrary path that should be moved on installation. Must provide an absolute path as a `target`. (Example: [free-gpgmail.rb](https://github.com/Homebrew/homebrew-cask/blob/b3c438d608d9702380edf10d5495e0727cf17108/Casks/f/free-gpgmail.rb#L44)) This is only for unusual cases; the `app` stanza is strongly preferred when moving `.app` bundles. |
| `stage_only` | no | `true`. Asserts that the cask contains no activatable artifacts. | `stage_only` | no | `true`. Asserts that the cask contains no activatable artifacts. |
### Optional stanzas ### Optional stanzas
| name | multiple occurrences allowed? | value | | name | multiple occurrences allowed? | value |
| ------------------------------------------ | :---------------------------: | ----- | | ------------------------------------------ | :---------------------------: | ----- |
| [`uninstall`](#stanza-uninstall) | yes | Procedures to uninstall a cask. Optional unless the `pkg` stanza is used. | [`uninstall`](#stanza-uninstall) | yes | Procedures to uninstall a cask. Optional unless the `pkg` stanza is used. |
| [`zap`](#stanza-zap) | yes | Additional procedures for a more complete uninstall, including user files and shared resources. | [`zap`](#stanza-zap) | yes | Additional procedures for a more complete uninstall, including user files and shared resources. |
| [`depends_on`](#stanza-depends_on) | yes | List of dependencies and requirements for this cask. | [`depends_on`](#stanza-depends_on) | yes | List of dependencies and requirements for this cask. |
| [`conflicts_with`](#stanza-conflicts_with) | yes | List of conflicts with this cask (*not yet functional*). | [`conflicts_with`](#stanza-conflicts_with) | yes | List of conflicts with this cask (*not yet functional*). |
| [`caveats`](#stanza-caveats) | yes | String or Ruby block providing the user with cask-specific information at install time. | [`caveats`](#stanza-caveats) | yes | String or Ruby block providing the user with cask-specific information at install time. |
| [`livecheck`](#stanza-livecheck) | no | Ruby block describing how to find updates for this cask. Supersedes `appcast`. | [`livecheck`](#stanza-livecheck) | no | Ruby block describing how to find updates for this cask. Supersedes `appcast`. |
| `preflight` | yes | Ruby block containing preflight install operations (needed only in very rare cases). | `preflight` | yes | Ruby block containing preflight install operations (needed only in very rare cases). |
| [`postflight`](#stanza-flight) | yes | Ruby block containing postflight install operations. | [`postflight`](#stanza-flight) | yes | Ruby block containing postflight install operations. |
| `uninstall_preflight` | yes | Ruby block containing preflight uninstall operations (needed only in very rare cases). | `uninstall_preflight` | yes | Ruby block containing preflight uninstall operations (needed only in very rare cases). |
| `uninstall_postflight` | yes | Ruby block containing postflight uninstall operations. | `uninstall_postflight` | yes | Ruby block containing postflight uninstall operations. |
| [`language`](#stanza-language) | required | Ruby block, called with language code parameters, containing other stanzas and/or a return value. | [`language`](#stanza-language) | required | Ruby block, called with language code parameters, containing other stanzas and/or a return value. |
| `container nested:` | no | Relative path to an inner container that must be extracted before moving on with the installation. This allows for support of `.dmg` inside `.tar`, `.zip` inside `.dmg`, etc. (Example: [blocs.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/b/blocs.rb#L17-L19)) | `container nested:` | no | Relative path to an inner container that must be extracted before moving on with the installation. This allows for support of `.dmg` inside `.tar`, `.zip` inside `.dmg`, etc. (Example: [blocs.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/b/blocs.rb#L17-L19)) |
| `container type:` | no | 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](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/p/parse.rb#L10)) | `container type:` | no | 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](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/p/parse.rb#L10)) |
| `auto_updates` | no | `true`. Asserts that the cask artifacts auto-update. Use if `Check for Updates…` or similar is present in an app menu, but not if it only opens a webpage and does not do the download and installation for you. | `auto_updates` | no | `true`. Asserts that the cask artifacts auto-update. Use if `Check for Updates…` or similar is present in an app menu, but not if it only opens a webpage and does not do the download and installation for you. |
## Stanza descriptions ## Stanza descriptions
@ -249,11 +249,11 @@ When `caveats` is a string, it is evaluated at compile time. The following metho
| method | description | | method | description |
| ------------------ | ----------- | | ------------------ | ----------- |
| `token` | the cask token | `token` | the cask token |
| `version` | the cask version | `version` | the cask version |
| `homepage` | the cask homepage | `homepage` | the cask homepage |
| `caskroom_path` | the containing directory for this cask: `$(brew --caskroom)/<token>` (only available with block form) | `caskroom_path` | the containing directory for this cask: `$(brew --caskroom)/<token>` (only available with block form) |
| `staged_path` | the staged location for this cask, including version number: `$(brew --caskroom)/<token>/<version>` (only available with block form) | `staged_path` | the staged location for this cask, including version number: `$(brew --caskroom)/<token>/<version>` (only available with block form) |
Example: Example:
@ -273,18 +273,18 @@ The following methods may be called to generate standard warning messages:
| method | description | | method | description |
| ---------------------------------- | ----------- | | ---------------------------------- | ----------- |
| `path_environment_variable "path"` | Users should make sure `path` is in their `PATH` environment variable. | `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. | `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). | `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). |
| `requires_rosetta` | The cask requires Rosetta 2 for it to run on Apple Silicon. | `requires_rosetta` | The cask requires Rosetta 2 for it to run on Apple Silicon. |
| `logout` | Users should log out and log back in to complete installation. | `logout` | Users should log out and log back in to complete installation. |
| `reboot` | Users should reboot 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. | `files_in_usr_local` | The cask installs files to `/usr/local`, which may confuse Homebrew. |
| `discontinued` | All software development has been officially discontinued upstream. | `discontinued` | All software development has been officially discontinued upstream. |
| `kext` | Users may need to enable their kexts in *System Settings → Privacy & Security* (or *System Preferences → Security & Privacy → General* in earlier macOS versions). | `kext` | Users may need to enable their kexts in *System Settings → Privacy & Security* (or *System Preferences → Security & Privacy → General* in earlier macOS versions). |
| `unsigned_accessibility` | Users will need to re-enable the app on each update in *System Settings → Privacy & Security* (or *System Preferences → Security & Privacy → Privacy* in earlier macOS versions) as it is unsigned. | `unsigned_accessibility` | Users will need to re-enable the app on each update in *System Settings → Privacy & Security* (or *System Preferences → Security & Privacy → Privacy* in earlier macOS versions) as it is unsigned. |
| `license "web_page"` | Users may find the software's usage license at `web_page`. | `license "web_page"` | Users may find the software's usage license at `web_page`. |
| `free_license "web_page"` | Users may obtain an official license to use the software at `web_page`. | `free_license "web_page"` | Users may obtain an official license to use the software at `web_page`. |
Example: Example:
@ -378,9 +378,9 @@ The available symbols for hardware are:
| symbol | meaning | | symbol | meaning |
| ---------- | -------------- | | ---------- | -------------- |
| `:x86_64` | 64-bit Intel | `:x86_64` | 64-bit Intel |
| `:intel` | 64-bit Intel | `:intel` | 64-bit Intel |
| `:arm64` | Apple Silicon | `:arm64` | Apple Silicon |
The following are all valid expressions: The following are all valid expressions:
@ -395,11 +395,11 @@ depends_on arch: :arm64
| key | description | | key | description |
| ---------- | ----------- | | ---------- | ----------- |
| `formula:` | Homebrew formula | `formula:` | Homebrew formula |
| `cask:` | cask token | `cask:` | cask token |
| `macos:` | symbol, array, or string comparison expression defining macOS release requirements | `macos:` | symbol, array, or string comparison expression defining macOS release requirements |
| `arch:` | symbol or array defining hardware requirements | `arch:` | symbol or array defining hardware requirements |
| `java:` | *stub - not yet functional* | `java:` | *stub - not yet functional* |
### Stanza: `desc` ### Stanza: `desc`
@ -481,8 +481,8 @@ The following methods may be called to perform standard tasks:
| method | availability | description | | method | availability | description |
| ----------------------------------------- | ------------------------------------------------ | ----------- | | ----------------------------------------- | ------------------------------------------------ | ----------- |
| `set_ownership(paths)` | `preflight`, `postflight`, `uninstall_preflight` | Set user and group ownership of `paths`. (Example: [docker-toolbox.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/d/docker-toolbox.rb#L42)) | `set_ownership(paths)` | `preflight`, `postflight`, `uninstall_preflight` | Set user and group ownership of `paths`. (Example: [docker-toolbox.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/d/docker-toolbox.rb#L42)) |
| `set_permissions(paths, permissions_str)` | `preflight`, `postflight`, `uninstall_preflight` | Set permissions in `paths` to `permissions_str`. (Example: [ngrok.rb](https://github.com/Homebrew/homebrew-cask/blob/41d91ff669d85343175202adf568e2328486205f/Casks/n/ngrok.rb#L30)) | `set_permissions(paths, permissions_str)` | `preflight`, `postflight`, `uninstall_preflight` | Set permissions in `paths` to `permissions_str`. (Example: [ngrok.rb](https://github.com/Homebrew/homebrew-cask/blob/41d91ff669d85343175202adf568e2328486205f/Casks/n/ngrok.rb#L30)) |
`set_ownership(paths)` defaults user ownership to the current user and group ownership to `staff`. These can be changed by passing in extra options: `set_ownership(paths, user: "user", group: "group")`. (Example: [hummingbird.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/h/hummingbird.rb#L24)) `set_ownership(paths)` defaults user ownership to the current user and group ownership to `staff`. These can be changed by passing in extra options: `set_ownership(paths, user: "user", group: "group")`. (Example: [hummingbird.rb](https://github.com/Homebrew/homebrew-cask/blob/aa461148bbb5119af26b82cccf5003e2b4e50d95/Casks/h/hummingbird.rb#L24))
@ -506,11 +506,11 @@ installer manual: "RubyMotion Installer.app"
| key | value | | key | value |
| --------------- | ----- | | --------------- | ----- |
| `executable:` | path to an install script to be run | `executable:` | path to an install script to be run |
| `args:` | array of arguments to the install script | `args:` | array of arguments to the install script |
| `input:` | array of lines of input to be sent to `stdin` of the script | `input:` | array of lines of input to be sent to `stdin` of the script |
| `must_succeed:` | set to `false` if the script is allowed to fail | `must_succeed:` | set to `false` if the script is allowed to fail |
| `sudo:` | set to `true` if the script needs *sudo* | `sudo:` | set to `true` if the script needs *sudo* |
The path may be absolute, or relative to the cask. Example (from [miniforge.rb](https://github.com/Homebrew/homebrew-cask/blob/864f623e2cd17dbde5987a7b3923fdb0b4ac9ee5/Casks/m/miniforge.rb#L23-L26)): The path may be absolute, or relative to the cask. Example (from [miniforge.rb](https://github.com/Homebrew/homebrew-cask/blob/864f623e2cd17dbde5987a7b3923fdb0b4ac9ee5/Casks/m/miniforge.rb#L23-L26)):
@ -921,13 +921,13 @@ When a plain URL string is insufficient to fetch a file, additional information
| key | value | | key | value |
| ------------------ | ----------- | | ------------------ | ----------- |
| `verified:` | string repeating the beginning of `url`, for [verification purposes](#when-url-and-homepage-domains-differ-add-verified) | `verified:` | string repeating the beginning of `url`, for [verification purposes](#when-url-and-homepage-domains-differ-add-verified) |
| `using:` | the symbols `:post` and `:homebrew_curl` are the only legal values | `using:` | the symbols `:post` and `:homebrew_curl` are the only legal values |
| `cookies:` | hash of cookies to be set in the download request (Example: [oracle-jdk-javadoc.rb](https://github.com/Homebrew/homebrew-cask/blob/326c44e93aeb8d4dd73acea14a99ae215c75fdd6/Casks/o/oracle-jdk-javadoc.rb#L5-L8)) | `cookies:` | hash of cookies to be set in the download request (Example: [oracle-jdk-javadoc.rb](https://github.com/Homebrew/homebrew-cask/blob/326c44e93aeb8d4dd73acea14a99ae215c75fdd6/Casks/o/oracle-jdk-javadoc.rb#L5-L8)) |
| `referer:` | string holding the URL to set as referer in the download request (Example: [firealpaca.rb](https://github.com/Homebrew/homebrew-cask/blob/c4b3f0742e044ae2a6e114eb6b90068763d0d12b/Casks/f/firealpaca.rb#L5-L6)) | `referer:` | string holding the URL to set as referer in the download request (Example: [firealpaca.rb](https://github.com/Homebrew/homebrew-cask/blob/c4b3f0742e044ae2a6e114eb6b90068763d0d12b/Casks/f/firealpaca.rb#L5-L6)) |
| `header:` | string or array of strings holding the header(s) to set for the download request (Example: [pull-6545](https://github.com/Homebrew/brew/pull/6545#issue-503302353), [issue-15590](https://github.com/Homebrew/brew/issues/15590#issue-1774825542)) | `header:` | string or array of strings holding the header(s) to set for the download request (Example: [pull-6545](https://github.com/Homebrew/brew/pull/6545#issue-503302353), [issue-15590](https://github.com/Homebrew/brew/issues/15590#issue-1774825542)) |
| `user_agent:` | string holding the user agent to set for the download request. Can also be set to the symbol `:fake`, which will use a generic browser-like user agent string. We prefer `:fake` when the server does not require a specific user agent. | `user_agent:` | string holding the user agent to set for the download request. Can also be set to the symbol `:fake`, which will use a generic browser-like user agent string. We prefer `:fake` when the server does not require a specific user agent. |
| `data:` | hash of parameters to be set in the POST request (Example: [segger-jlink.rb](https://github.com/Homebrew/homebrew-cask/blob/38ac55614f146d68ae317594f0c119e9acbd7c9e/Casks/s/segger-jlink.rb#L6-L11)) | `data:` | hash of parameters to be set in the POST request (Example: [segger-jlink.rb](https://github.com/Homebrew/homebrew-cask/blob/38ac55614f146d68ae317594f0c119e9acbd7c9e/Casks/s/segger-jlink.rb#L6-L11)) |
#### When URL and homepage domains differ, add `verified:` #### When URL and homepage domains differ, add `verified:`
@ -951,9 +951,9 @@ In rare cases, a distribution may not be available over ordinary HTTP/S. Subvers
| key | value | | key | value |
| ------------------ | ----------- | | ------------------ | ----------- |
| `using:` | the symbol `:svn` is the only legal value | `using:` | the symbol `:svn` is the only legal value |
| `revision:` | string identifying the Subversion revision to download | `revision:` | string identifying the Subversion revision to download |
| `trust_cert:` | set to `true` to automatically trust the certificate presented by the server (avoiding an interactive prompt) | `trust_cert:` | set to `true` to automatically trust the certificate presented by the server (avoiding an interactive prompt) |
#### Git URLs #### Git URLs
@ -961,11 +961,11 @@ Artifacts also may be distributed via Git repositories. URLs that end in `.git`
| key | value | | key | value |
| ------------------ | ----------- | | ------------------ | ----------- |
| `using:` | the symbol `:git` is the only legal value | `using:` | the symbol `:git` is the only legal value |
| `tag:` | string identifying the Git tag to download | `tag:` | string identifying the Git tag to download |
| `revision:` | string identifying the Git revision to download | `revision:` | string identifying the Git revision to download |
| `branch:` | string identifying the Git branch to download | `branch:` | string identifying the Git branch to download |
| `only_path:` | path within the repository to limit the checkout to. If only a single directory of a large repository is required, using this option can significantly speed up downloads. If provided, artifact paths are relative to this path. (Example: [font-geo.rb](https://github.com/Homebrew/homebrew-cask-fonts/blob/bac691e1d7b5bd7372e7e0befae989a3ff7ad449/Casks/font-geo.rb#L5-L8)) | `only_path:` | path within the repository to limit the checkout to. If only a single directory of a large repository is required, using this option can significantly speed up downloads. If provided, artifact paths are relative to this path. (Example: [font-geo.rb](https://github.com/Homebrew/homebrew-cask-fonts/blob/bac691e1d7b5bd7372e7e0befae989a3ff7ad449/Casks/font-geo.rb#L5-L8)) |
#### SourceForge/OSDN URLs #### SourceForge/OSDN URLs
@ -1064,16 +1064,16 @@ The examples above can become hard to read, however. Since many of these changes
| method | input | output | | method | input | output |
| ------------------------ | ------------------ | ------------------ | | ------------------------ | ------------------ | ------------------ |
| `major` | `1.2.3-a45,ccdd88` | `1` | `major` | `1.2.3-a45,ccdd88` | `1` |
| `minor` | `1.2.3-a45,ccdd88` | `2` | `minor` | `1.2.3-a45,ccdd88` | `2` |
| `patch` | `1.2.3-a45,ccdd88` | `3-a45` | `patch` | `1.2.3-a45,ccdd88` | `3-a45` |
| `major_minor` | `1.2.3-a45,ccdd88` | `1.2` | `major_minor` | `1.2.3-a45,ccdd88` | `1.2` |
| `major_minor_patch` | `1.2.3-a45,ccdd88` | `1.2.3-a45` | `major_minor_patch` | `1.2.3-a45,ccdd88` | `1.2.3-a45` |
| `minor_patch` | `1.2.3-a45,ccdd88` | `2.3-a45` | `minor_patch` | `1.2.3-a45,ccdd88` | `2.3-a45` |
| `before_comma` | `1.2.3-a45,ccdd88` | `1.2.3-a45` | `before_comma` | `1.2.3-a45,ccdd88` | `1.2.3-a45` |
| `after_comma` | `1.2.3-a45,ccdd88` | `ccdd88` | `after_comma` | `1.2.3-a45,ccdd88` | `ccdd88` |
| `dots_to_hyphens` | `1.2.3-a45,ccdd88` | `1-2-3-a45,ccdd88` | `dots_to_hyphens` | `1.2.3-a45,ccdd88` | `1-2-3-a45,ccdd88` |
| `no_dots` | `1.2.3-a45,ccdd88` | `123-a45,ccdd88` | `no_dots` | `1.2.3-a45,ccdd88` | `123-a45,ccdd88` |
Similar to `dots_to_hyphens`, we provide methods for all logical permutations of `{dots,hyphens,underscores}_to_{dots,hyphens,underscores}`. The same applies to `no_dots` in the form of `no_{dots,hyphens,underscores}`, with an extra `no_dividers` that applies all these at once. Similar to `dots_to_hyphens`, we provide methods for all logical permutations of `{dots,hyphens,underscores}_to_{dots,hyphens,underscores}`. The same applies to `no_dots` in the form of `no_{dots,hyphens,underscores}`, with an extra `no_dividers` that applies all these at once.
@ -1343,13 +1343,13 @@ The token is also given in the header line for each cask.
These illustrate most of the rules for generating a token: These illustrate most of the rules for generating a token:
App Name on Disk | Simplified App Name | Cask Token | Filename | App Name on Disk | Simplified App Name | Cask Token | Filename |
-----------------------|---------------------|------------------|---------------------- |------------------------|---------------------|------------------|----------------------|
`Audio Hijack Pro.app` | Audio Hijack Pro | audio-hijack-pro | `audio-hijack-pro.rb` | `Audio Hijack Pro.app` | Audio Hijack Pro | audio-hijack-pro | `audio-hijack-pro.rb` |
`VLC.app` | VLC | vlc | `vlc.rb` | `VLC.app` | VLC | vlc | `vlc.rb` |
`BetterTouchTool.app` | BetterTouchTool | bettertouchtool | `bettertouchtool.rb` | `BetterTouchTool.app` | BetterTouchTool | bettertouchtool | `bettertouchtool.rb` |
`LPK25 Editor.app` | LPK25 Editor | lpk25-editor | `lpk25-editor.rb` | `LPK25 Editor.app` | LPK25 Editor | lpk25-editor | `lpk25-editor.rb` |
`Sublime Text 2.app` | Sublime Text | sublime-text | `sublime-text.rb` | `Sublime Text 2.app` | Sublime Text | sublime-text | `sublime-text.rb` |
#### Tap-specific cask token examples #### Tap-specific cask token examples

View File

@ -28,11 +28,11 @@ An executable script for a command named `extcmd` should be named `brew-extcmd`.
| variable | description | | variable | description |
| ---------------------- | ----------- | | ---------------------- | ----------- |
| `HOMEBREW_CACHE` | Where Homebrew caches downloaded tarballs to, by default `~/Library/Caches/Homebrew`. | `HOMEBREW_CACHE` | Where Homebrew caches downloaded tarballs to, by default `~/Library/Caches/Homebrew`. |
| `HOMEBREW_PREFIX` | Where Homebrew installs software. `/usr/local` by default for macOS Intel, `/opt/homebrew` for Apple Silicon and `/home/linuxbrew/.linuxbrew` for Linux. | `HOMEBREW_PREFIX` | Where Homebrew installs software. `/usr/local` by default for macOS Intel, `/opt/homebrew` for Apple Silicon and `/home/linuxbrew/.linuxbrew` for Linux. |
| `HOMEBREW_CELLAR` | The location of the Homebrew Cellar, where software is staged. This will be `HOMEBREW_PREFIX/Cellar` if that directory exists, or `HOMEBREW_REPOSITORY/Cellar` otherwise. | `HOMEBREW_CELLAR` | The location of the Homebrew Cellar, where software is staged. This will be `HOMEBREW_PREFIX/Cellar` if that directory exists, or `HOMEBREW_REPOSITORY/Cellar` otherwise. |
| `HOMEBREW_LIBRARY_PATH`| The directory containing Homebrews own application code. | `HOMEBREW_LIBRARY_PATH`| The directory containing Homebrews own application code. |
| `HOMEBREW_REPOSITORY` | The Git repository directory (i.e. where Homebrews `.git` directory lives). Usually either the same as `HOMEBREW_PREFIX` or a `Homebrew` subdirectory. | `HOMEBREW_REPOSITORY` | The Git repository directory (i.e. where Homebrews `.git` directory lives). Usually either the same as `HOMEBREW_PREFIX` or a `Homebrew` subdirectory. |
## Providing `--help` ## Providing `--help`

View File

@ -9,21 +9,21 @@ A *formula* is a package definition written in Ruby. It can be created with `bre
| term | description | example | | term | description | example |
| -------------------- | ------------------------------------------------------------------------- | ------- | | -------------------- | ------------------------------------------------------------------------- | ------- |
| **formula** | Homebrew package definition that builds from upstream sources | `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/f/foo.rb` | **formula** | Homebrew package definition that builds from upstream sources | `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/f/foo.rb` |
| **cask** | Homebrew package definition that installs macOS native applications | `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks/b/bar.rb` | **cask** | Homebrew package definition that installs macOS native applications | `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks/b/bar.rb` |
| **prefix** | path in which Homebrew is installed | `/usr/local` | **prefix** | path in which Homebrew is installed | `/usr/local` |
| **keg** | installation destination directory of a given **formula** version | `/usr/local/Cellar/foo/0.1` | **keg** | installation destination directory of a given **formula** version | `/usr/local/Cellar/foo/0.1` |
| **rack** | directory containing one or more versioned **kegs** | `/usr/local/Cellar/foo` | **rack** | directory containing one or more versioned **kegs** | `/usr/local/Cellar/foo` |
| **keg-only** | a **formula** is *keg-only* if it is not symlinked into Homebrew's prefix | the [`openjdk`](https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/o/openjdk.rb) formula | **keg-only** | a **formula** is *keg-only* if it is not symlinked into Homebrew's prefix | the [`openjdk`](https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/o/openjdk.rb) formula |
| **opt prefix** | a symlink to the active version of a **keg** | `/usr/local/opt/foo` | **opt prefix** | a symlink to the active version of a **keg** | `/usr/local/opt/foo` |
| **Cellar** | directory containing one or more named **racks** | `/usr/local/Cellar` | **Cellar** | directory containing one or more named **racks** | `/usr/local/Cellar` |
| **Caskroom** | directory containing one or more named **casks** | `/usr/local/Caskroom` | **Caskroom** | directory containing one or more named **casks** | `/usr/local/Caskroom` |
| **external command** | `brew` subcommand defined outside of the Homebrew/brew GitHub repository | [`brew alias`](https://github.com/Homebrew/homebrew-aliases) | **external command** | `brew` subcommand defined outside of the Homebrew/brew GitHub repository | [`brew alias`](https://github.com/Homebrew/homebrew-aliases) |
| **tap** | directory (and usually Git repository) of **formulae**, **casks** and/or **external commands** | `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core` | **tap** | directory (and usually Git repository) of **formulae**, **casks** and/or **external commands** | `/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core` |
| **bottle** | pre-built **keg** poured into a **rack** of the **Cellar** instead of building from upstream sources | `qt--6.5.1.ventura.bottle.tar.gz` | **bottle** | pre-built **keg** poured into a **rack** of the **Cellar** instead of building from upstream sources | `qt--6.5.1.ventura.bottle.tar.gz` |
| **tab** | information about a **keg**, e.g. whether it was poured from a **bottle** or built from source | `/usr/local/Cellar/foo/0.1/INSTALL_RECEIPT.json` | **tab** | information about a **keg**, e.g. whether it was poured from a **bottle** or built from source | `/usr/local/Cellar/foo/0.1/INSTALL_RECEIPT.json` |
| **Brew Bundle** | an [extension of Homebrew](https://github.com/Homebrew/homebrew-bundle) to describe dependencies | `brew 'myservice', restart_service: true` | **Brew Bundle** | an [extension of Homebrew](https://github.com/Homebrew/homebrew-bundle) to describe dependencies | `brew 'myservice', restart_service: true` |
| **Brew Services** | an [extension of Homebrew](https://github.com/Homebrew/homebrew-services) to manage services | `brew services start myservice` | **Brew Services** | an [extension of Homebrew](https://github.com/Homebrew/homebrew-services) to manage services | `brew services start myservice` |
## An introduction ## An introduction
@ -668,16 +668,16 @@ Homebrew offers these anonymous download strategies.
| `:using` value | download strategy | | `:using` value | download strategy |
| ---------------- | ----------------------------- | | ---------------- | ----------------------------- |
| `:bzr` | `BazaarDownloadStrategy` | `:bzr` | `BazaarDownloadStrategy` |
| `:curl` | `CurlDownloadStrategy` | `:curl` | `CurlDownloadStrategy` |
| `:cvs` | `CVSDownloadStrategy` | `:cvs` | `CVSDownloadStrategy` |
| `:fossil` | `FossilDownloadStrategy` | `:fossil` | `FossilDownloadStrategy` |
| `:git` | `GitDownloadStrategy` | `:git` | `GitDownloadStrategy` |
| `:hg` | `MercurialDownloadStrategy` | `:hg` | `MercurialDownloadStrategy` |
| `:homebrew_curl` | `HomebrewCurlDownloadStrategy` | `:homebrew_curl` | `HomebrewCurlDownloadStrategy` |
| `:nounzip` | `NoUnzipCurlDownloadStrategy` | `:nounzip` | `NoUnzipCurlDownloadStrategy` |
| `:post` | `CurlPostDownloadStrategy` | `:post` | `CurlPostDownloadStrategy` |
| `:svn` | `SubversionDownloadStrategy` | `:svn` | `SubversionDownloadStrategy` |
If you need more control over the way files are downloaded and staged, you can create a custom download strategy and specify it with the `:using` option: If you need more control over the way files are downloaded and staged, you can create a custom download strategy and specify it with the `:using` option:
@ -749,32 +749,32 @@ Generally we'd rather you were specific about which files or directories need to
| name | default path | example | | name | default path | example |
| --------------------- | ---------------------------------------------- | ------- | | --------------------- | ---------------------------------------------- | ------- |
| **`HOMEBREW_PREFIX`** | output of `$(brew --prefix)` | `/usr/local` | **`HOMEBREW_PREFIX`** | output of `$(brew --prefix)` | `/usr/local` |
| **`prefix`** | `#{HOMEBREW_PREFIX}/Cellar/#{name}/#{version}` | `/usr/local/Cellar/foo/0.1` | **`prefix`** | `#{HOMEBREW_PREFIX}/Cellar/#{name}/#{version}` | `/usr/local/Cellar/foo/0.1` |
| **`opt_prefix`** | `#{HOMEBREW_PREFIX}/opt/#{name}` | `/usr/local/opt/foo` | **`opt_prefix`** | `#{HOMEBREW_PREFIX}/opt/#{name}` | `/usr/local/opt/foo` |
| **`bin`** | `#{prefix}/bin` | `/usr/local/Cellar/foo/0.1/bin` | **`bin`** | `#{prefix}/bin` | `/usr/local/Cellar/foo/0.1/bin` |
| **`doc`** | `#{prefix}/share/doc/#{name}` | `/usr/local/Cellar/foo/0.1/share/doc/foo` | **`doc`** | `#{prefix}/share/doc/#{name}` | `/usr/local/Cellar/foo/0.1/share/doc/foo` |
| **`include`** | `#{prefix}/include` | `/usr/local/Cellar/foo/0.1/include` | **`include`** | `#{prefix}/include` | `/usr/local/Cellar/foo/0.1/include` |
| **`info`** | `#{prefix}/share/info` | `/usr/local/Cellar/foo/0.1/share/info` | **`info`** | `#{prefix}/share/info` | `/usr/local/Cellar/foo/0.1/share/info` |
| **`lib`** | `#{prefix}/lib` | `/usr/local/Cellar/foo/0.1/lib` | **`lib`** | `#{prefix}/lib` | `/usr/local/Cellar/foo/0.1/lib` |
| **`libexec`** | `#{prefix}/libexec` | `/usr/local/Cellar/foo/0.1/libexec` | **`libexec`** | `#{prefix}/libexec` | `/usr/local/Cellar/foo/0.1/libexec` |
| **`man`** | `#{prefix}/share/man` | `/usr/local/Cellar/foo/0.1/share/man` | **`man`** | `#{prefix}/share/man` | `/usr/local/Cellar/foo/0.1/share/man` |
| **`man[1-8]`** | `#{prefix}/share/man/man[1-8]` | `/usr/local/Cellar/foo/0.1/share/man/man[1-8]` | **`man[1-8]`** | `#{prefix}/share/man/man[1-8]` | `/usr/local/Cellar/foo/0.1/share/man/man[1-8]` |
| **`sbin`** | `#{prefix}/sbin` | `/usr/local/Cellar/foo/0.1/sbin` | **`sbin`** | `#{prefix}/sbin` | `/usr/local/Cellar/foo/0.1/sbin` |
| **`share`** | `#{prefix}/share` | `/usr/local/Cellar/foo/0.1/share` | **`share`** | `#{prefix}/share` | `/usr/local/Cellar/foo/0.1/share` |
| **`pkgshare`** | `#{prefix}/share/#{name}` | `/usr/local/Cellar/foo/0.1/share/foo` | **`pkgshare`** | `#{prefix}/share/#{name}` | `/usr/local/Cellar/foo/0.1/share/foo` |
| **`elisp`** | `#{prefix}/share/emacs/site-lisp/#{name}` | `/usr/local/Cellar/foo/0.1/share/emacs/site-lisp/foo` | **`elisp`** | `#{prefix}/share/emacs/site-lisp/#{name}` | `/usr/local/Cellar/foo/0.1/share/emacs/site-lisp/foo` |
| **`frameworks`** | `#{prefix}/Frameworks` | `/usr/local/Cellar/foo/0.1/Frameworks` | **`frameworks`** | `#{prefix}/Frameworks` | `/usr/local/Cellar/foo/0.1/Frameworks` |
| **`kext_prefix`** | `#{prefix}/Library/Extensions` | `/usr/local/Cellar/foo/0.1/Library/Extensions` | **`kext_prefix`** | `#{prefix}/Library/Extensions` | `/usr/local/Cellar/foo/0.1/Library/Extensions` |
| **`zsh_function`** | `#{prefix}/share/zsh/site-functions` | `/usr/local/Cellar/foo/0.1/share/zsh/site-functions` | **`zsh_function`** | `#{prefix}/share/zsh/site-functions` | `/usr/local/Cellar/foo/0.1/share/zsh/site-functions` |
| **`fish_function`** | `#{prefix}/share/fish/vendor_functions` | `/usr/local/Cellar/foo/0.1/share/fish/vendor_functions` | **`fish_function`** | `#{prefix}/share/fish/vendor_functions` | `/usr/local/Cellar/foo/0.1/share/fish/vendor_functions` |
| **`bash_completion`** | `#{prefix}/etc/bash_completion.d` | `/usr/local/Cellar/foo/0.1/etc/bash_completion.d` | **`bash_completion`** | `#{prefix}/etc/bash_completion.d` | `/usr/local/Cellar/foo/0.1/etc/bash_completion.d` |
| **`zsh_completion`** | `#{prefix}/share/zsh/site-functions` | `/usr/local/Cellar/foo/0.1/share/zsh/site-functions` | **`zsh_completion`** | `#{prefix}/share/zsh/site-functions` | `/usr/local/Cellar/foo/0.1/share/zsh/site-functions` |
| **`fish_completion`** | `#{prefix}/share/fish/vendor_completions.d` | `/usr/local/Cellar/foo/0.1/share/fish/vendor_completions.d` | **`fish_completion`** | `#{prefix}/share/fish/vendor_completions.d` | `/usr/local/Cellar/foo/0.1/share/fish/vendor_completions.d` |
| **`etc`** | `#{HOMEBREW_PREFIX}/etc` | `/usr/local/etc` | **`etc`** | `#{HOMEBREW_PREFIX}/etc` | `/usr/local/etc` |
| **`pkgetc`** | `#{HOMEBREW_PREFIX}/etc/#{name}` | `/usr/local/etc/foo` | **`pkgetc`** | `#{HOMEBREW_PREFIX}/etc/#{name}` | `/usr/local/etc/foo` |
| **`var`** | `#{HOMEBREW_PREFIX}/var` | `/usr/local/var` | **`var`** | `#{HOMEBREW_PREFIX}/var` | `/usr/local/var` |
| **`buildpath`** | temporary directory somewhere on your system | `/private/tmp/[formula-name]-0q2b/[formula-name]` | **`buildpath`** | temporary directory somewhere on your system | `/private/tmp/[formula-name]-0q2b/[formula-name]` |
These can be used, for instance, in code such as: These can be used, for instance, in code such as:
@ -937,24 +937,24 @@ This table lists the options you can set within a `service` block. The `run` or
| method | default | macOS | Linux | description | | method | default | macOS | Linux | description |
| ----------------------- | ------------ | :---: | :---: | ----------- | | ----------------------- | ------------ | :---: | :---: | ----------- |
| `run` | - | yes | yes | command to execute: an array with arguments or a path | `run` | - | yes | yes | command to execute: an array with arguments or a path |
| `run_type` | `:immediate` | yes | yes | type of service: `:immediate`, `:interval` or `:cron` | `run_type` | `:immediate` | yes | yes | type of service: `:immediate`, `:interval` or `:cron` |
| `interval` | - | yes | yes | controls the start interval, required for the `:interval` type | `interval` | - | yes | yes | controls the start interval, required for the `:interval` type |
| `cron` | - | yes | yes | controls the trigger times, required for the `:cron` type | `cron` | - | yes | yes | controls the trigger times, required for the `:cron` type |
| `keep_alive` | `false` | yes | yes | [sets contexts](#keep_alive-options) in which the service will keep the process running | `keep_alive` | `false` | yes | yes | [sets contexts](#keep_alive-options) in which the service will keep the process running |
| `launch_only_once` | `false` | yes | yes | whether the command should only run once | `launch_only_once` | `false` | yes | yes | whether the command should only run once |
| `require_root` | `false` | yes | yes | whether the service requires root access | `require_root` | `false` | yes | yes | whether the service requires root access |
| `environment_variables` | - | yes | yes | hash of variables to set | `environment_variables` | - | yes | yes | hash of variables to set |
| `working_dir` | - | yes | yes | directory to operate from | `working_dir` | - | yes | yes | directory to operate from |
| `root_dir` | - | yes | yes | directory to use as a chroot for the process | `root_dir` | - | yes | yes | directory to use as a chroot for the process |
| `input_path` | - | yes | yes | path to use as input for the process | `input_path` | - | yes | yes | path to use as input for the process |
| `log_path` | - | yes | yes | path to write `stdout` to | `log_path` | - | yes | yes | path to write `stdout` to |
| `error_log_path` | - | yes | yes | path to write `stderr` to | `error_log_path` | - | yes | yes | path to write `stderr` to |
| `restart_delay` | - | yes | yes | number of seconds to delay before restarting a process | `restart_delay` | - | yes | yes | number of seconds to delay before restarting a process |
| `process_type` | - | yes | no-op | type of process to manage: `:background`, `:standard`, `:interactive` or `:adaptive` | `process_type` | - | yes | no-op | type of process to manage: `:background`, `:standard`, `:interactive` or `:adaptive` |
| `macos_legacy_timers` | - | yes | no-op | timers created by `launchd` jobs are coalesced unless this is set | `macos_legacy_timers` | - | yes | no-op | timers created by `launchd` jobs are coalesced unless this is set |
| `sockets` | - | yes | no-op | socket that is created as an accesspoint to the service | `sockets` | - | yes | no-op | socket that is created as an accesspoint to the service |
| `name` | - | yes | yes | a hash with the `launchd` service name on macOS and/or the `systemd` service name on Linux | `name` | - | yes | yes | a hash with the `launchd` service name on macOS and/or the `systemd` service name on Linux |
For services that are kept alive after starting you can use the default `run_type`: For services that are kept alive after starting you can use the default `run_type`: