| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: true | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Homebrew | 
					
						
							| 
									
										
										
										
											2020-08-14 04:35:58 +02:00
										 |  |  |   # Helper module for querying Homebrew-specific environment variables. | 
					
						
							|  |  |  |   # | 
					
						
							|  |  |  |   # @api private | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |   module EnvConfig | 
					
						
							| 
									
										
										
										
											2020-10-20 12:03:48 +02:00
										 |  |  |     extend T::Sig | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |     module_function | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ENVS = { | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_ADDITIONAL_GOOGLE_ANALYTICS_ID:   { | 
					
						
							| 
									
										
										
										
											2021-10-13 13:40:54 -05:00
										 |  |  |         description: "Additional Google Analytics tracking ID to emit user behaviour analytics to. " \ | 
					
						
							|  |  |  |                      "For more information, see: <https://docs.brew.sh/Analytics>", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2023-02-03 14:10:40 +00:00
										 |  |  |       HOMEBREW_API_DOMAIN:                       { | 
					
						
							|  |  |  |         description:  "Use this URL as the download mirror for Homebrew JSON API. " \ | 
					
						
							|  |  |  |                       "If metadata files at that URL are temporarily unavailable, " \ | 
					
						
							|  |  |  |                       "the default API domain will be used as a fallback mirror.", | 
					
						
							|  |  |  |         default_text: "`https://formulae.brew.sh/api`.", | 
					
						
							|  |  |  |         default:      HOMEBREW_API_DEFAULT_DOMAIN, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_ARCH:                             { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description: "Linux only: Pass this value to a type name representing the compiler's `-march` option.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default:     "native", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_ARTIFACT_DOMAIN:                  { | 
					
						
							| 
									
										
										
										
											2021-01-26 15:21:24 -05:00
										 |  |  |         description: "Prefix all download URLs, including those for bottles, with this value. " \ | 
					
						
							|  |  |  |                      "For example, `HOMEBREW_ARTIFACT_DOMAIN=http://localhost:8080` will cause a " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "formula with the URL `https://example.com/foo.tar.gz` to instead download from " \ | 
					
						
							| 
									
										
										
										
											2022-05-02 18:17:15 +02:00
										 |  |  |                      "`http://localhost:8080/https://example.com/foo.tar.gz`. " \ | 
					
						
							|  |  |  |                      "Bottle URLs however, have their domain replaced with this prefix. " \ | 
					
						
							| 
									
										
										
										
											2022-05-23 12:22:56 +01:00
										 |  |  |                      "This results in e.g. " \ | 
					
						
							| 
									
										
										
										
											2022-05-02 18:17:15 +02:00
										 |  |  |                      "`https://ghcr.io/v2/homebrew/core/gettext/manifests/0.21` " \ | 
					
						
							| 
									
										
										
										
											2022-05-23 12:22:56 +01:00
										 |  |  |                      "to instead be downloaded from " \ | 
					
						
							| 
									
										
										
										
											2022-05-02 18:17:15 +02:00
										 |  |  |                      "`http://localhost:8080/v2/homebrew/core/gettext/manifests/0.21`", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_AUTO_UPDATE_SECS:                 { | 
					
						
							| 
									
										
										
										
											2023-01-18 15:11:30 +00:00
										 |  |  |         description:  "Run `brew update` once every `HOMEBREW_AUTO_UPDATE_SECS` seconds before some commands, " \ | 
					
						
							|  |  |  |                       "e.g. `brew install`, `brew upgrade` and `brew tap`. Alternatively, " \ | 
					
						
							|  |  |  |                       "disable auto-update entirely with HOMEBREW_NO_AUTO_UPDATE.", | 
					
						
							| 
									
										
										
										
											2023-02-07 19:25:40 +01:00
										 |  |  |         default_text: "86400 (24 hours) or 300 (5 minutes) if HOMEBREW_NO_INSTALL_FROM_API is set.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-07-13 11:46:43 -07:00
										 |  |  |       HOMEBREW_AUTOREMOVE:                       { | 
					
						
							| 
									
										
										
										
											2022-07-17 00:59:43 -07:00
										 |  |  |         description: "If set, calls to `brew cleanup` and `brew uninstall` will automatically " \ | 
					
						
							|  |  |  |                      "remove unused formula dependents and if HOMEBREW_NO_INSTALL_CLEANUP is not set, " \ | 
					
						
							|  |  |  |                      "`brew cleanup` will start running `brew autoremove` periodically.", | 
					
						
							| 
									
										
										
										
											2022-07-13 11:28:54 -07:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_BAT:                              { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, use `bat` for the `brew cat` command.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_BAT_CONFIG_PATH:                  { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description:  "Use this as the `bat` configuration file.", | 
					
						
							| 
									
										
										
										
											2023-02-09 18:47:19 +00:00
										 |  |  |         default_text: "`$BAT_CONFIG_PATH`.", | 
					
						
							| 
									
										
										
										
											2020-05-02 18:21:36 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-06 08:39:18 +08:00
										 |  |  |       HOMEBREW_BAT_THEME:                        { | 
					
						
							|  |  |  |         description:  "Use this as the `bat` theme for syntax highlighting.", | 
					
						
							|  |  |  |         default_text: "`$BAT_THEME`.", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_BOOTSNAP:                         { | 
					
						
							| 
									
										
										
										
											2022-06-28 10:09:59 +01:00
										 |  |  |         description: "If set, use Bootsnap to speed up repeated `brew` calls. " \ | 
					
						
							| 
									
										
										
										
											2021-02-25 11:06:50 +00:00
										 |  |  |                      "A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).", | 
					
						
							| 
									
										
										
										
											2021-02-02 11:52:56 +00:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_BOTTLE_DOMAIN:                    { | 
					
						
							| 
									
										
										
										
											2021-07-29 21:15:40 +01:00
										 |  |  |         description:  "Use this URL as the download mirror for bottles. " \ | 
					
						
							|  |  |  |                       "If bottles at that URL are temporarily unavailable, " \ | 
					
						
							|  |  |  |                       "the default bottle domain will be used as a fallback mirror. " \ | 
					
						
							|  |  |  |                       "For example, `HOMEBREW_BOTTLE_DOMAIN=http://localhost:8080` will cause all bottles to " \ | 
					
						
							|  |  |  |                       "download from the prefix `http://localhost:8080/`. " \ | 
					
						
							|  |  |  |                       "If bottles are not available at `HOMEBREW_BOTTLE_DOMAIN` " \ | 
					
						
							|  |  |  |                       "they will be downloaded from the default bottle domain.", | 
					
						
							| 
									
										
										
										
											2021-10-20 11:01:38 +01:00
										 |  |  |         default_text: "`https://ghcr.io/v2/homebrew/core`.", | 
					
						
							| 
									
										
										
										
											2021-07-29 21:15:40 +01:00
										 |  |  |         default:      HOMEBREW_BOTTLE_DEFAULT_DOMAIN, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_BREW_GIT_REMOTE:                  { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description: "Use this URL as the Homebrew/brew `git`(1) remote.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default:     HOMEBREW_BREW_DEFAULT_GIT_REMOTE, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_BROWSER:                          { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description:  "Use this as the browser when opening project homepages.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default_text: "`$BROWSER` or the OS's default browser.", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_CACHE:                            { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description:  "Use this directory as the download cache.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default_text: "macOS: `$HOME/Library/Caches/Homebrew`, " \ | 
					
						
							|  |  |  |                       "Linux: `$XDG_CACHE_HOME/Homebrew` or `$HOME/.cache/Homebrew`.", | 
					
						
							|  |  |  |         default:      HOMEBREW_DEFAULT_CACHE, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_CASK_OPTS:                        { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description: "Append these options to all `cask` commands. All `--*dir` options, " \ | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:41 -05:00
										 |  |  |                      "`--language`, `--require-sha`, `--no-quarantine` and `--no-binaries` are supported. " \ | 
					
						
							| 
									
										
										
										
											2020-08-01 02:30:46 +02:00
										 |  |  |                      "For example, you might add something like the following to your " \ | 
					
						
							| 
									
										
										
										
											2022-06-28 10:17:14 +01:00
										 |  |  |                      "`~/.profile`, `~/.bash_profile`, or `~/.zshenv`:" \ | 
					
						
							|  |  |  |                      '\n\n    `export HOMEBREW_CASK_OPTS="--appdir=~/Applications --fontdir=/Library/Fonts"`', | 
					
						
							| 
									
										
										
										
											2020-08-05 11:50:01 +02:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS:       { | 
					
						
							| 
									
										
										
										
											2020-12-09 10:36:02 +00:00
										 |  |  |         description: "If set, `brew install`, `brew upgrade` and `brew reinstall` will cleanup all formulae " \ | 
					
						
							|  |  |  |                      "when this number of days has passed.", | 
					
						
							|  |  |  |         default:     30, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_CLEANUP_MAX_AGE_DAYS:             { | 
					
						
							| 
									
										
										
										
											2020-04-20 10:33:15 +01:00
										 |  |  |         description: "Cleanup all cached files older than this many days.", | 
					
						
							|  |  |  |         default:     120, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_COLOR:                            { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, force colour output on non-TTY outputs.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_CORE_GIT_REMOTE:                  { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description:  "Use this URL as the Homebrew/homebrew-core `git`(1) remote.", | 
					
						
							| 
									
										
										
										
											2021-10-20 11:01:38 +01:00
										 |  |  |         default_text: "`https://github.com/Homebrew/homebrew-core`.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default:      HOMEBREW_CORE_DEFAULT_GIT_REMOTE, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_CURLRC:                           { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, do not pass `--disable` when invoking `curl`(1), which disables the " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "use of `curlrc`.", | 
					
						
							|  |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-14 10:33:30 +01:00
										 |  |  |       HOMEBREW_CURL_PATH:                        { | 
					
						
							|  |  |  |         description: "Linux only: Set this value to a new enough `curl` executable for Homebrew to use.", | 
					
						
							|  |  |  |         default:     "curl", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_CURL_RETRIES:                     { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "Pass the given retry count to `--retry` when invoking `curl`(1).", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default:     3, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_CURL_VERBOSE:                     { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, pass `--verbose` when invoking `curl`(1).", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_DEVELOPER:                        { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, tweak behaviour to be more relevant for Homebrew developers (active or " \ | 
					
						
							|  |  |  |                      "budding) by e.g. turning warnings into errors.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_DISABLE_LOAD_FORMULA:             { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, refuse to load formulae. This is useful when formulae are not trusted (such " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "as in pull requests).", | 
					
						
							|  |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_DISPLAY:                          { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description:  "Use this X11 display when opening a page in a browser, for example with " \ | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:41 -05:00
										 |  |  |                       "`brew home`. Primarily useful on Linux.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default_text: "`$DISPLAY`.", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_DISPLAY_INSTALL_TIMES:            { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, print install times for each formula at the end of the run.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_EDITOR:                           { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description:  "Use this editor when editing a single formula, or several formulae in the " \ | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:41 -05:00
										 |  |  |                       "same directory." \ | 
					
						
							|  |  |  |                       "\n\n    *Note:* `brew edit` will open all of Homebrew as discontinuous files " \ | 
					
						
							|  |  |  |                       "and directories. Visual Studio Code can handle this correctly in project mode, but many " \ | 
					
						
							|  |  |  |                       "editors will do strange things in this case.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default_text: "`$EDITOR` or `$VISUAL`.", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-09-05 13:57:22 +01:00
										 |  |  |       HOMEBREW_EVAL_ALL:                         { | 
					
						
							|  |  |  |         description: "If set, `brew` commands evaluate all formulae and casks, executing their arbitrary code, by " \ | 
					
						
							|  |  |  |                      "default without requiring --eval-all. Required to cache formula and cask descriptions.", | 
					
						
							|  |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_FAIL_LOG_LINES:                   { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "Output this many lines of output on formula `system` failures.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default:     15, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_FORBIDDEN_LICENSES:               { | 
					
						
							| 
									
										
										
										
											2020-07-09 17:42:08 +08:00
										 |  |  |         description: "A space-separated list of licenses. Homebrew will refuse to install a " \ | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |                      "formula if it or any of its dependencies has a license on this list.", | 
					
						
							| 
									
										
										
										
											2020-07-01 21:45:47 +08:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_FORCE_BREWED_CA_CERTIFICATES:     { | 
					
						
							| 
									
										
										
										
											2021-10-01 15:06:04 +01:00
										 |  |  |         description: "If set, always use a Homebrew-installed `ca-certificates` rather than the system version. " \ | 
					
						
							|  |  |  |                      "Automatically set if the system version is too old.", | 
					
						
							|  |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_FORCE_BREWED_CURL:                { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, always use a Homebrew-installed `curl`(1) rather than the system version. " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "Automatically set if the system version of `curl` is too old.", | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         boolean:     true, | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_FORCE_BREWED_GIT:                 { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, always use a Homebrew-installed `git`(1) rather than the system version. " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "Automatically set if the system version of `git` is too old.", | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         boolean:     true, | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_FORCE_VENDOR_RUBY:                { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, always use Homebrew's vendored, relocatable Ruby version even if the system version " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "of Ruby is new enough.", | 
					
						
							|  |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_GITHUB_API_TOKEN:                 { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "Use this personal access token for the GitHub API, for features such as " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "`brew search`. You can create one at <https://github.com/settings/tokens>. If set, " \ | 
					
						
							|  |  |  |                      "GitHub will allow you a greater number of API requests. For more information, see: " \ | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:41 -05:00
										 |  |  |                      "<https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting>" \ | 
					
						
							|  |  |  |                      "\n\n    *Note:* Homebrew doesn't require permissions for any of the scopes, but some " \ | 
					
						
							|  |  |  |                      "developer commands may require additional permissions.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_GITHUB_PACKAGES_TOKEN:            { | 
					
						
							| 
									
										
										
										
											2022-06-28 10:09:59 +01:00
										 |  |  |         description: "Use this GitHub personal access token when accessing the GitHub Packages Registry " \ | 
					
						
							| 
									
										
										
										
											2021-03-11 15:15:35 +00:00
										 |  |  |                      "(where bottles may be stored).", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN: { | 
					
						
							| 
									
										
										
										
											2022-01-04 21:46:31 -05:00
										 |  |  |         description: "Use this base64 encoded username and password for authenticating with a Docker registry " \ | 
					
						
							|  |  |  |                      "proxying GitHub Packages. If HOMEBREW_DOCKER_REGISTRY_TOKEN is set, it will be used instead.", | 
					
						
							| 
									
										
										
										
											2021-07-25 08:41:30 +03:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_DOCKER_REGISTRY_TOKEN:            { | 
					
						
							| 
									
										
										
										
											2022-01-04 21:46:31 -05:00
										 |  |  |         description: "Use this bearer token for authenticating with a Docker registry proxying GitHub Packages. " \ | 
					
						
							| 
									
										
										
										
											2022-11-10 07:33:52 -08:00
										 |  |  |                      "Preferred over HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN.", | 
					
						
							| 
									
										
										
										
											2022-01-04 21:46:31 -05:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_GITHUB_PACKAGES_USER:             { | 
					
						
							| 
									
										
										
										
											2021-03-11 15:15:35 +00:00
										 |  |  |         description: "Use this username when accessing the GitHub Packages Registry (where bottles may be stored).", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_GIT_EMAIL:                        { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description: "Set the Git author and committer email to this value.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_GIT_NAME:                         { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description: "Set the Git author and committer name to this value.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-14 10:33:30 +01:00
										 |  |  |       HOMEBREW_GIT_PATH:                         { | 
					
						
							|  |  |  |         description: "Linux only: Set this value to a new enough `git` executable for Homebrew to use.", | 
					
						
							|  |  |  |         default:     "git", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_INSTALL_BADGE:                    { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description:  "Print this text before the installation summary of each successful build.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default_text: 'The "Beer Mug" emoji.', | 
					
						
							|  |  |  |         default:      "🍺", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_LIVECHECK_WATCHLIST:              { | 
					
						
							| 
									
										
										
										
											2022-06-21 17:57:19 -07:00
										 |  |  |         description:  "Consult this file for the list of formulae to check by default when no formula argument " \ | 
					
						
							|  |  |  |                       "is passed to `brew livecheck`.", | 
					
						
							| 
									
										
										
										
											2022-06-22 11:26:23 +08:00
										 |  |  |         default_text: "`$HOME/.brew_livecheck_watchlist`", | 
					
						
							| 
									
										
										
										
											2022-06-21 17:57:19 -07:00
										 |  |  |         default:      "~/.brew_livecheck_watchlist", | 
					
						
							| 
									
										
										
										
											2020-08-02 00:59:36 +05:30
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_LOGS:                             { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description:  "Use this directory to store log files.", | 
					
						
							|  |  |  |         default_text: "macOS: `$HOME/Library/Logs/Homebrew`, " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                       "Linux: `$XDG_CACHE_HOME/Homebrew/Logs` or `$HOME/.cache/Homebrew/Logs`.", | 
					
						
							|  |  |  |         default:      HOMEBREW_DEFAULT_LOGS, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_MAKE_JOBS:                        { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description:  "Use this value as the number of parallel jobs to run when building with `make`(1).", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default_text: "The number of available CPU cores.", | 
					
						
							|  |  |  |         default:      lambda { | 
					
						
							|  |  |  |           require "os" | 
					
						
							|  |  |  |           require "hardware" | 
					
						
							|  |  |  |           Hardware::CPU.cores | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_ANALYTICS:                     { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description: "If set, do not send analytics. For more information, see: <https://docs.brew.sh/Analytics>", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_AUTO_UPDATE:                   { | 
					
						
							| 
									
										
										
										
											2021-11-25 09:10:59 +00:00
										 |  |  |         description: "If set, do not automatically update before running some commands, e.g. " \ | 
					
						
							|  |  |  |                      "`brew install`, `brew upgrade` and `brew tap`. Alternatively, " \ | 
					
						
							|  |  |  |                      "run this less often by setting HOMEBREW_AUTO_UPDATE_SECS to a value higher than the default.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_BOOTSNAP:                      { | 
					
						
							| 
									
										
										
										
											2021-02-02 11:52:56 +00:00
										 |  |  |         description: "If set, do not use Bootsnap to speed up repeated `brew` calls.", | 
					
						
							|  |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK:    { | 
					
						
							| 
									
										
										
										
											2021-11-25 09:10:59 +00:00
										 |  |  |         description: "If set, do not check for broken linkage of dependents or outdated dependents after " \ | 
					
						
							|  |  |  |                      "installing, upgrading or reinstalling formulae. This will result in fewer dependents " \ | 
					
						
							| 
									
										
										
										
											2022-06-28 10:17:14 +01:00
										 |  |  |                      "(and their dependencies) being upgraded or reinstalled but may result in more breakage " \ | 
					
						
							| 
									
										
										
										
											2021-11-25 09:10:59 +00:00
										 |  |  |                      "from running `brew install <formula>` or `brew upgrade <formula>`.", | 
					
						
							| 
									
										
										
										
											2020-10-06 10:50:51 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_CLEANUP_FORMULAE:              { | 
					
						
							| 
									
										
										
										
											2022-07-17 00:59:43 -07:00
										 |  |  |         description: "A comma-separated list of formulae. Homebrew will refuse to clean up " \ | 
					
						
							|  |  |  |                      "or autoremove a formula if it appears on this list.", | 
					
						
							| 
									
										
										
										
											2021-08-27 18:00:43 +08:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_COLOR:                         { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description:  "If set, do not print text with colour added.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         default_text: "`$NO_COLOR`.", | 
					
						
							|  |  |  |         boolean:      true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_COMPAT:                        { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, disable all use of legacy compatibility code.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_EMOJI:                         { | 
					
						
							| 
									
										
										
										
											2023-01-28 19:29:18 -08:00
										 |  |  |         description: "If set, do not print `HOMEBREW_INSTALL_BADGE` on a successful build.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_ENV_HINTS:                     { | 
					
						
							| 
									
										
										
										
											2021-11-26 13:14:10 +00:00
										 |  |  |         description: "If set, do not print any hints about changing Homebrew's behaviour with environment variables.", | 
					
						
							|  |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_GITHUB_API:                    { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, do not use the GitHub API, e.g. for searches or fetching relevant issues " \ | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |                      "after a failed install.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_INSECURE_REDIRECT:             { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, forbid redirects from secure HTTPS to insecure HTTP." \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "\n\n    *Note:* While ensuring your downloads are fully secure, this is likely to cause " \ | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |                      "from-source SourceForge, some GNU & GNOME-hosted formulae to fail to download.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_INSTALL_CLEANUP:               { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, `brew install`, `brew upgrade` and `brew reinstall` will never automatically " \ | 
					
						
							| 
									
										
										
										
											2020-12-09 10:36:02 +00:00
										 |  |  |                      "cleanup installed/upgraded/reinstalled formulae or all formulae every " \ | 
					
						
							| 
									
										
										
										
											2021-11-25 09:10:59 +00:00
										 |  |  |                      "`HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS` days. Alternatively, HOMEBREW_NO_CLEANUP_FORMULAE " \ | 
					
						
							|  |  |  |                      "allows specifying specific formulae to not clean up.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2023-01-18 15:50:13 +00:00
										 |  |  |       HOMEBREW_NO_INSTALL_FROM_API:              { | 
					
						
							|  |  |  |         description: "If set, do not install formulae and casks in homebrew/core and homebrew/cask taps using " \ | 
					
						
							| 
									
										
										
										
											2023-02-07 19:25:40 +01:00
										 |  |  |                      "Homebrew's API and instead use (large, slow) local checkouts of these repositories.", | 
					
						
							| 
									
										
										
										
											2023-01-18 15:50:13 +00:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_NO_INSTALL_UPGRADE:               { | 
					
						
							| 
									
										
										
										
											2021-11-25 09:10:59 +00:00
										 |  |  |         description: "If set, `brew install <formula>` will not upgrade `<formula>` if it is installed but " \ | 
					
						
							|  |  |  |                      "outdated.", | 
					
						
							| 
									
										
										
										
											2021-06-10 15:06:12 -04:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-09-16 01:57:19 +08:00
										 |  |  |       HOMEBREW_PIP_INDEX_URL:                    { | 
					
						
							|  |  |  |         description:  "If set, `brew install <formula>` will use this URL to download PyPI package resources.", | 
					
						
							|  |  |  |         default_text: "`https://pypi.org/simple`.", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_PRY:                              { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, use Pry for the `brew irb` command.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_SIMULATE_MACOS_ON_LINUX:          { | 
					
						
							| 
									
										
										
										
											2021-03-03 00:30:40 +00:00
										 |  |  |         description: "If set, running Homebrew on Linux will simulate certain macOS code paths. This is useful " \ | 
					
						
							| 
									
										
										
										
											2021-10-20 11:01:38 +01:00
										 |  |  |                      "when auditing macOS formulae while on Linux.", | 
					
						
							| 
									
										
										
										
											2021-08-29 21:40:35 +02:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_SSH_CONFIG_PATH:                  { | 
					
						
							| 
									
										
										
										
											2021-10-19 08:35:12 -05:00
										 |  |  |         description:  "If set, Homebrew will use the given config file instead of `~/.ssh/config` when fetching " \ | 
					
						
							|  |  |  |                       "`git` repos over `ssh`.", | 
					
						
							|  |  |  |         default_text: "`$HOME/.ssh/config`", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_SKIP_OR_LATER_BOTTLES:            { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description: "If set along with `HOMEBREW_DEVELOPER`, do not use bottles from older versions " \ | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |                      "of macOS. This is useful in development on new macOS versions.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_SORBET_RUNTIME:                   { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description: "If set, enable runtime typechecking using Sorbet.", | 
					
						
							| 
									
										
										
										
											2020-10-09 12:11:23 +02:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_SVN:                              { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description:  "Use this as the `svn`(1) binary.", | 
					
						
							|  |  |  |         default_text: "A Homebrew-built Subversion (if installed), or the system-provided binary.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_TEMP:                             { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description:  "Use this path as the temporary directory for building packages. Changing " \ | 
					
						
							|  |  |  |                       "this may be needed if your system temporary directory and Homebrew prefix are on " \ | 
					
						
							|  |  |  |                       "different volumes, as macOS has trouble moving symlinks across volumes when the target " \ | 
					
						
							|  |  |  |                       "does not yet exist. This issue typically occurs when using FileVault or custom SSD " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                       "configurations.", | 
					
						
							|  |  |  |         default_text: "macOS: `/private/tmp`, Linux: `/tmp`.", | 
					
						
							|  |  |  |         default:      HOMEBREW_DEFAULT_TEMP, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_UPDATE_REPORT_ALL_FORMULAE:       { | 
					
						
							|  |  |  |         description: "If set, `brew update` lists changes to all formulae and cask files rather than only showing " \ | 
					
						
							| 
									
										
										
										
											2022-06-13 09:12:32 +01:00
										 |  |  |                      "when they are new and not installed or outdated and installed.", | 
					
						
							| 
									
										
										
										
											2022-02-28 09:54:12 +00:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_UPDATE_TO_TAG:                    { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, always use the latest stable tag (even if developer commands " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "have been run).", | 
					
						
							|  |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_VERBOSE:                          { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, always assume `--verbose` when running commands.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_DEBUG:                            { | 
					
						
							| 
									
										
										
										
											2020-09-03 19:44:32 +02:00
										 |  |  |         description: "If set, always assume `--debug` when running commands.", | 
					
						
							|  |  |  |         boolean:     true, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       HOMEBREW_VERBOSE_USING_DOTS:               { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "If set, verbose output will print a `.` no more than once a minute. This can be " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "useful to avoid long-running Homebrew commands being killed due to no output.", | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         boolean:     true, | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       all_proxy:                                 { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "Use this SOCKS5 proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       ftp_proxy:                                 { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "Use this FTP proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       http_proxy:                                { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "Use this HTTP proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       https_proxy:                               { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "Use this HTTPS proxy for `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.", | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       no_proxy:                                  { | 
					
						
							| 
									
										
										
										
											2020-04-09 19:33:50 +10:00
										 |  |  |         description: "A comma-separated list of hostnames and domain names excluded " \ | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |                      "from proxying by `curl`(1), `git`(1) and `svn`(1) when downloading through Homebrew.", | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2022-06-03 19:16:15 +01:00
										 |  |  |       SUDO_ASKPASS:                              { | 
					
						
							| 
									
										
										
										
											2020-11-12 10:40:48 -05:00
										 |  |  |         description: "If set, pass the `-A` option when calling `sudo`(8).", | 
					
						
							| 
									
										
										
										
											2020-08-01 02:30:46 +02:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |     }.freeze | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def env_method_name(env, hash) | 
					
						
							|  |  |  |       method_name = env.to_s | 
					
						
							|  |  |  |                        .sub(/^HOMEBREW_/, "") | 
					
						
							|  |  |  |                        .downcase | 
					
						
							|  |  |  |       method_name = "#{method_name}?" if hash[:boolean] | 
					
						
							|  |  |  |       method_name | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-11 10:29:21 +01:00
										 |  |  |     CUSTOM_IMPLEMENTATIONS = %w[
 | 
					
						
							|  |  |  |       HOMEBREW_MAKE_JOBS | 
					
						
							|  |  |  |       HOMEBREW_CASK_OPTS | 
					
						
							|  |  |  |     ].freeze | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |     ENVS.each do |env, hash| | 
					
						
							|  |  |  |       method_name = env_method_name(env, hash) | 
					
						
							|  |  |  |       env = env.to_s | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       if hash[:boolean] | 
					
						
							|  |  |  |         define_method(method_name) do | 
					
						
							|  |  |  |           ENV[env].present? | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       elsif hash[:default].present? | 
					
						
							|  |  |  |         # Needs a custom implementation. | 
					
						
							| 
									
										
										
										
											2020-09-11 10:29:21 +01:00
										 |  |  |         next if CUSTOM_IMPLEMENTATIONS.include?(env) | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         define_method(method_name) do | 
					
						
							|  |  |  |           ENV[env].presence || hash.fetch(:default).to_s | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         define_method(method_name) do | 
					
						
							|  |  |  |           ENV[env].presence | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Needs a custom implementation. | 
					
						
							| 
									
										
										
										
											2020-11-20 14:20:38 +01:00
										 |  |  |     sig { returns(String) } | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |     def make_jobs | 
					
						
							|  |  |  |       jobs = ENV["HOMEBREW_MAKE_JOBS"].to_i | 
					
						
							|  |  |  |       return jobs.to_s if jobs.positive? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       ENVS.fetch(:HOMEBREW_MAKE_JOBS) | 
					
						
							|  |  |  |           .fetch(:default) | 
					
						
							|  |  |  |           .call | 
					
						
							|  |  |  |           .to_s | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2020-08-05 11:50:01 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-20 12:03:48 +02:00
										 |  |  |     sig { returns(T::Array[String]) } | 
					
						
							| 
									
										
										
										
											2020-08-05 11:50:01 +02:00
										 |  |  |     def cask_opts | 
					
						
							|  |  |  |       Shellwords.shellsplit(ENV.fetch("HOMEBREW_CASK_OPTS", "")) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-20 12:03:48 +02:00
										 |  |  |     sig { returns(T::Boolean) } | 
					
						
							| 
									
										
										
										
											2020-08-05 10:28:58 -04:00
										 |  |  |     def cask_opts_binaries? | 
					
						
							|  |  |  |       cask_opts.reverse_each do |opt| | 
					
						
							|  |  |  |         return true if opt == "--binaries" | 
					
						
							|  |  |  |         return false if opt == "--no-binaries" | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       true | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-20 12:03:48 +02:00
										 |  |  |     sig { returns(T::Boolean) } | 
					
						
							| 
									
										
										
										
											2020-08-05 11:50:01 +02:00
										 |  |  |     def cask_opts_quarantine? | 
					
						
							|  |  |  |       cask_opts.reverse_each do |opt| | 
					
						
							|  |  |  |         return true if opt == "--quarantine" | 
					
						
							|  |  |  |         return false if opt == "--no-quarantine" | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       true | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-20 12:03:48 +02:00
										 |  |  |     sig { returns(T::Boolean) } | 
					
						
							| 
									
										
										
										
											2020-08-05 11:50:01 +02:00
										 |  |  |     def cask_opts_require_sha? | 
					
						
							|  |  |  |       cask_opts.include?("--require-sha") | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2023-01-18 15:50:13 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     sig { returns(T::Boolean) } | 
					
						
							|  |  |  |     def install_from_api? | 
					
						
							| 
									
										
										
										
											2023-02-02 14:49:33 +00:00
										 |  |  |       return false if OS.unsupported_configuration? | 
					
						
							|  |  |  |       return false unless Homebrew.default_prefix? | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-07 19:25:40 +01:00
										 |  |  |       ENV["HOMEBREW_NO_INSTALL_FROM_API"].blank? | 
					
						
							| 
									
										
										
										
											2023-01-18 15:50:13 +00:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2020-04-05 15:43:59 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | end |