| 
									
										
										
										
											2020-10-12 09:23:49 +01:00
										 |  |  | ##### | 
					
						
							|  |  |  | ##### First do the essential, fast things to be able to make e.g. brew --prefix and other commands we want to be | 
					
						
							|  |  |  | ##### able to `source` in shell configuration quick. | 
					
						
							|  |  |  | ##### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-20 10:26:40 -07:00
										 |  |  | HOMEBREW_PROCESSOR="$(uname -m)" | 
					
						
							|  |  |  | HOMEBREW_SYSTEM="$(uname -s)" | 
					
						
							|  |  |  | case "$HOMEBREW_SYSTEM" in | 
					
						
							|  |  |  |   Darwin) HOMEBREW_MACOS="1" ;; | 
					
						
							|  |  |  |   Linux)  HOMEBREW_LINUX="1" ;; | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-25 06:54:40 -07:00
										 |  |  | # Where we store built products; a Cellar in HOMEBREW_PREFIX (often /usr/local | 
					
						
							|  |  |  | # for bottles) unless there's already a Cellar in HOMEBREW_REPOSITORY. | 
					
						
							|  |  |  | if [[ -d "$HOMEBREW_REPOSITORY/Cellar" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   HOMEBREW_CELLAR="$HOMEBREW_REPOSITORY/Cellar" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   HOMEBREW_CELLAR="$HOMEBREW_PREFIX/Cellar" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-12 09:23:49 +01:00
										 |  |  | if [[ -n "$HOMEBREW_MACOS" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   HOMEBREW_DEFAULT_CACHE="${HOME}/Library/Caches/Homebrew" | 
					
						
							|  |  |  |   HOMEBREW_DEFAULT_LOGS="${HOME}/Library/Logs/Homebrew" | 
					
						
							|  |  |  |   HOMEBREW_DEFAULT_TEMP="/private/tmp" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   CACHE_HOME="${XDG_CACHE_HOME:-${HOME}/.cache}" | 
					
						
							|  |  |  |   HOMEBREW_DEFAULT_CACHE="${CACHE_HOME}/Homebrew" | 
					
						
							|  |  |  |   HOMEBREW_DEFAULT_LOGS="${CACHE_HOME}/Homebrew/Logs" | 
					
						
							|  |  |  |   HOMEBREW_DEFAULT_TEMP="/tmp" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HOMEBREW_CACHE="${HOMEBREW_CACHE:-${HOMEBREW_DEFAULT_CACHE}}" | 
					
						
							|  |  |  | HOMEBREW_LOGS="${HOMEBREW_LOGS:-${HOMEBREW_DEFAULT_LOGS}}" | 
					
						
							|  |  |  | HOMEBREW_TEMP="${HOMEBREW_TEMP:-${HOMEBREW_DEFAULT_TEMP}}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Don't need shellcheck to follow these `source`. | 
					
						
							|  |  |  | # shellcheck disable=SC1090 | 
					
						
							| 
									
										
										
										
											2017-07-25 06:54:40 -07:00
										 |  |  | case "$*" in | 
					
						
							|  |  |  |   --prefix)            echo "$HOMEBREW_PREFIX"; exit 0 ;; | 
					
						
							|  |  |  |   --cellar)            echo "$HOMEBREW_CELLAR"; exit 0 ;; | 
					
						
							|  |  |  |   --repository|--repo) echo "$HOMEBREW_REPOSITORY"; exit 0 ;; | 
					
						
							| 
									
										
										
										
											2020-08-03 18:16:26 -04:00
										 |  |  |   --caskroom)          echo "$HOMEBREW_PREFIX/Caskroom"; exit 0 ;; | 
					
						
							| 
									
										
										
										
											2020-10-12 09:23:49 +01:00
										 |  |  |   --cache)             echo "$HOMEBREW_CACHE"; exit 0 ;; | 
					
						
							|  |  |  |   shellenv)            source "$HOMEBREW_LIBRARY/Homebrew/cmd/shellenv.sh"; homebrew-shellenv; exit 0 ;; | 
					
						
							| 
									
										
										
										
											2017-07-25 06:54:40 -07:00
										 |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-12 09:23:49 +01:00
										 |  |  | ##### | 
					
						
							|  |  |  | ##### Next, define all helper functions. | 
					
						
							|  |  |  | ##### | 
					
						
							| 
									
										
										
										
											2016-10-01 15:18:09 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-21 16:18:46 -05:00
										 |  |  | ohai() { | 
					
						
							| 
									
										
										
										
											2020-03-31 00:17:42 +02:00
										 |  |  |   if [[ -n "$HOMEBREW_COLOR" || (-t 1 && -z "$HOMEBREW_NO_COLOR") ]] # check whether stdout is a tty. | 
					
						
							| 
									
										
										
										
											2019-11-21 16:18:46 -05:00
										 |  |  |   then | 
					
						
							|  |  |  |     echo -e "\\033[34m==>\\033[0m \\033[1m$*\\033[0m" # blue arrow and bold text | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     echo "==> $*" | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-03 14:24:41 +01:00
										 |  |  | onoe() { | 
					
						
							| 
									
										
										
										
											2020-03-31 00:17:42 +02:00
										 |  |  |   if [[ -n "$HOMEBREW_COLOR" || (-t 2 && -z "$HOMEBREW_NO_COLOR") ]] # check whether stderr is a tty. | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   then | 
					
						
							| 
									
										
										
										
											2018-10-04 09:31:37 +01:00
										 |  |  |     echo -ne "\\033[4;31mError\\033[0m: " >&2 # highlight Error with underline and red color | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   else | 
					
						
							|  |  |  |     echo -n "Error: " >&2 | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  |   if [[ $# -eq 0 ]] | 
					
						
							|  |  |  |   then | 
					
						
							| 
									
										
										
										
											2018-03-17 17:05:39 -07:00
										 |  |  |     cat >&2 | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   else | 
					
						
							|  |  |  |     echo "$*" >&2 | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2016-05-03 14:24:41 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | odie() { | 
					
						
							|  |  |  |   onoe "$@" | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   exit 1 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-28 21:35:49 +02:00
										 |  |  | safe_cd() { | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   cd "$@" >/dev/null || odie "Error: failed to cd to $*!" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-03 16:14:15 +08:00
										 |  |  | brew() { | 
					
						
							|  |  |  |   "$HOMEBREW_BREW_FILE" "$@" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-13 14:40:14 +08:00
										 |  |  | git() { | 
					
						
							| 
									
										
										
										
											2016-07-15 19:03:45 +01:00
										 |  |  |   "$HOMEBREW_LIBRARY/Homebrew/shims/scm/git" "$@" | 
					
						
							| 
									
										
										
										
											2016-05-13 14:40:14 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-26 17:08:59 -04:00
										 |  |  | numeric() { | 
					
						
							|  |  |  |   # Condense the exploded argument into a single return value. | 
					
						
							|  |  |  |   # shellcheck disable=SC2086,SC2183 | 
					
						
							| 
									
										
										
										
											2019-11-11 20:31:59 +07:00
										 |  |  |   printf "%01d%02d%02d%03d" ${1//[.rc]/ } 2>/dev/null | 
					
						
							| 
									
										
										
										
											2018-10-26 17:08:59 -04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-12 09:23:49 +01:00
										 |  |  | check-run-command-as-root() { | 
					
						
							|  |  |  |   [[ "$(id -u)" = 0 ]] || return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Allow Azure Pipelines/GitHub Actions/Docker/Concourse/Kubernetes to do everything as root (as it's normal there) | 
					
						
							|  |  |  |   [[ -f /proc/1/cgroup ]] && grep -E "azpl_job|actions_job|docker|garden|kubepods" -q /proc/1/cgroup && return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Homebrew Services may need `sudo` for system-wide daemons. | 
					
						
							|  |  |  |   [[ "$HOMEBREW_COMMAND" = "services" ]] && return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # It's fine to run this as root as it's not changing anything. | 
					
						
							|  |  |  |   [[ "$HOMEBREW_COMMAND" = "--prefix" ]] && return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   odie <<EOS | 
					
						
							|  |  |  | Running Homebrew as root is extremely dangerous and no longer supported. | 
					
						
							|  |  |  | As Homebrew does not drop privileges on installation you would be giving all | 
					
						
							|  |  |  | build scripts full access to your system. | 
					
						
							|  |  |  | EOS | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | check-prefix-is-not-tmpdir() { | 
					
						
							|  |  |  |   [[ -z "${HOMEBREW_MACOS}" ]] && return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if [[ "${HOMEBREW_PREFIX}" = "${HOMEBREW_TEMP}"* ]] | 
					
						
							|  |  |  |   then | 
					
						
							|  |  |  |     odie <<EOS | 
					
						
							|  |  |  | Your HOMEBREW_PREFIX is in the Homebrew temporary directory, which Homebrew | 
					
						
							|  |  |  | uses to store downloads and builds. You can resolve this by installing Homebrew to | 
					
						
							|  |  |  | either the standard prefix (/usr/local) or to a non-standard prefix that is not | 
					
						
							|  |  |  | in the Homebrew temporary directory. | 
					
						
							|  |  |  | EOS | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Let user know we're still updating Homebrew if brew update --preinstall | 
					
						
							|  |  |  | # exceeds 3 seconds. | 
					
						
							|  |  |  | update-preinstall-timer() { | 
					
						
							|  |  |  |   sleep 3 | 
					
						
							|  |  |  |   echo 'Updating Homebrew...' >&2 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | update-preinstall() { | 
					
						
							|  |  |  |   [[ -z "$HOMEBREW_HELP" ]] || return | 
					
						
							|  |  |  |   [[ -z "$HOMEBREW_NO_AUTO_UPDATE" ]] || return | 
					
						
							|  |  |  |   [[ -z "$HOMEBREW_AUTO_UPDATING" ]] || return | 
					
						
							|  |  |  |   [[ -z "$HOMEBREW_UPDATE_PREINSTALL" ]] || return | 
					
						
							|  |  |  |   [[ -z "$HOMEBREW_AUTO_UPDATE_CHECKED" ]] || return | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # If we've checked for updates, we don't need to check again. | 
					
						
							|  |  |  |   export HOMEBREW_AUTO_UPDATE_CHECKED="1" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if [[ "$HOMEBREW_COMMAND" = "cask" ]] | 
					
						
							|  |  |  |   then | 
					
						
							|  |  |  |     if [[ "$HOMEBREW_CASK_COMMAND" != "upgrade" && $HOMEBREW_ARG_COUNT -lt 3 ]] | 
					
						
							|  |  |  |     then | 
					
						
							|  |  |  |       return | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |   elif [[ "$HOMEBREW_COMMAND" != "upgrade" && $HOMEBREW_ARG_COUNT -lt 2 ]] | 
					
						
							|  |  |  |   then | 
					
						
							|  |  |  |     return | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if [[ "$HOMEBREW_COMMAND" = "install" || "$HOMEBREW_COMMAND" = "upgrade" || | 
					
						
							|  |  |  |         "$HOMEBREW_COMMAND" = "bump-formula-pr" || | 
					
						
							|  |  |  |         "$HOMEBREW_COMMAND" = "bundle" || | 
					
						
							|  |  |  |         "$HOMEBREW_COMMAND" = "tap" && $HOMEBREW_ARG_COUNT -gt 1 || | 
					
						
							|  |  |  |         "$HOMEBREW_CASK_COMMAND" = "install" || "$HOMEBREW_CASK_COMMAND" = "upgrade" ]] | 
					
						
							|  |  |  |   then | 
					
						
							|  |  |  |     export HOMEBREW_AUTO_UPDATING="1" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Skip auto-update if the cask/core tap has been updated in the | 
					
						
							|  |  |  |     # last $HOMEBREW_AUTO_UPDATE_SECS. | 
					
						
							|  |  |  |     if [[ "$HOMEBREW_COMMAND" = "cask" ]] | 
					
						
							|  |  |  |     then | 
					
						
							|  |  |  |       tap_fetch_head="$HOMEBREW_LIBRARY/Taps/homebrew/homebrew-cask/.git/FETCH_HEAD" | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       tap_fetch_head="$HOMEBREW_LIBRARY/Taps/homebrew/homebrew-core/.git/FETCH_HEAD" | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |     if [[ -f "$tap_fetch_head" && | 
					
						
							|  |  |  |           -n "$(find "$tap_fetch_head" -type f -mtime -"${HOMEBREW_AUTO_UPDATE_SECS}"s 2>/dev/null)" ]] | 
					
						
							|  |  |  |     then | 
					
						
							|  |  |  |       return | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if [[ -z "$HOMEBREW_VERBOSE" ]] | 
					
						
							|  |  |  |     then | 
					
						
							|  |  |  |       update-preinstall-timer & | 
					
						
							|  |  |  |       timer_pid=$! | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     brew update --preinstall | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if [[ -n "$timer_pid" ]] | 
					
						
							|  |  |  |     then | 
					
						
							|  |  |  |       kill "$timer_pid" 2>/dev/null | 
					
						
							|  |  |  |       wait "$timer_pid" 2>/dev/null | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     unset HOMEBREW_AUTO_UPDATING | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # exec a new process to set any new environment variables. | 
					
						
							|  |  |  |     exec "$HOMEBREW_BREW_FILE" "$@" | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ##### | 
					
						
							|  |  |  | ##### Setup output so e.g. odie looks as nice as possible. | 
					
						
							|  |  |  | ##### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Colorize output on GitHub Actions. | 
					
						
							|  |  |  | if [[ -n "$GITHUB_ACTIONS" ]]; then | 
					
						
							|  |  |  |   export HOMEBREW_COLOR="1" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Force UTF-8 to avoid encoding issues for users with broken locale settings. | 
					
						
							|  |  |  | if [[ -n "$HOMEBREW_MACOS" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   if [[ "$(locale charmap)" != "UTF-8" ]] | 
					
						
							|  |  |  |   then | 
					
						
							|  |  |  |     export LC_ALL="en_US.UTF-8" | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   if ! command -v locale >/dev/null | 
					
						
							|  |  |  |   then | 
					
						
							|  |  |  |     export LC_ALL=C | 
					
						
							|  |  |  |   elif [[ "$(locale charmap)" != "UTF-8" ]] | 
					
						
							|  |  |  |   then | 
					
						
							|  |  |  |     locales=$(locale -a) | 
					
						
							|  |  |  |     c_utf_regex='\bC\.(utf8|UTF-8)\b' | 
					
						
							|  |  |  |     en_us_regex='\ben_US\.(utf8|UTF-8)\b' | 
					
						
							|  |  |  |     utf_regex='\b[a-z][a-z]_[A-Z][A-Z]\.(utf8|UTF-8)\b' | 
					
						
							|  |  |  |     if [[ $locales =~ $c_utf_regex || $locales =~ $en_us_regex || $locales =~ $utf_regex ]] | 
					
						
							|  |  |  |     then | 
					
						
							|  |  |  |       export LC_ALL=${BASH_REMATCH[0]} | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       export LC_ALL=C | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ##### | 
					
						
							|  |  |  | ##### odie as quickly as possible. | 
					
						
							|  |  |  | ##### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | if [[ "$HOMEBREW_PREFIX" = "/" || "$HOMEBREW_PREFIX" = "/usr" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   # it may work, but I only see pain this route and don't want to support it | 
					
						
							|  |  |  |   odie "Cowardly refusing to continue at this prefix: $HOMEBREW_PREFIX" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-12 09:23:49 +01:00
										 |  |  | # Many Pathname operations use getwd when they shouldn't, and then throw | 
					
						
							|  |  |  | # odd exceptions. Reduce our support burden by showing a user-friendly error. | 
					
						
							|  |  |  | if [[ ! -d "$(pwd)" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   odie "The current working directory doesn't exist, cannot proceed." | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ##### | 
					
						
							|  |  |  | ##### Now, do everything else (that may be a bit slower). | 
					
						
							|  |  |  | ##### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # USER isn't always set so provide a fall back for `brew` and subprocesses. | 
					
						
							|  |  |  | export USER=${USER:-$(id -un)} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # A depth of 1 means this command was directly invoked by a user. | 
					
						
							|  |  |  | # Higher depths mean this command was invoked by another Homebrew command. | 
					
						
							|  |  |  | export HOMEBREW_COMMAND_DEPTH=$((HOMEBREW_COMMAND_DEPTH + 1)) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-05-04 03:16:51 -05:00
										 |  |  | if [[ -n "$HOMEBREW_FORCE_BREWED_CURL" && | 
					
						
							|  |  |  |       -x "$HOMEBREW_PREFIX/opt/curl/bin/curl" ]] && | 
					
						
							|  |  |  |          "$HOMEBREW_PREFIX/opt/curl/bin/curl" --version >/dev/null | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   HOMEBREW_CURL="$HOMEBREW_PREFIX/opt/curl/bin/curl" | 
					
						
							|  |  |  | elif [[ -n "$HOMEBREW_DEVELOPER" && -x "$HOMEBREW_CURL_PATH" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   HOMEBREW_CURL="$HOMEBREW_CURL_PATH" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   HOMEBREW_CURL="curl" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [[ -n "$HOMEBREW_FORCE_BREWED_GIT" && | 
					
						
							|  |  |  |       -x "$HOMEBREW_PREFIX/opt/git/bin/git" ]] && | 
					
						
							|  |  |  |          "$HOMEBREW_PREFIX/opt/git/bin/git" --version >/dev/null | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   HOMEBREW_GIT="$HOMEBREW_PREFIX/opt/git/bin/git" | 
					
						
							|  |  |  | elif [[ -n "$HOMEBREW_DEVELOPER" && -x "$HOMEBREW_GIT_PATH" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   HOMEBREW_GIT="$HOMEBREW_GIT_PATH" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   HOMEBREW_GIT="git" | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2020-05-11 07:30:25 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-09 12:22:45 -05:00
										 |  |  | HOMEBREW_VERSION="$("$HOMEBREW_GIT" -C "$HOMEBREW_REPOSITORY" describe --tags --dirty --abbrev=7 2>/dev/null)" | 
					
						
							|  |  |  | HOMEBREW_USER_AGENT_VERSION="$HOMEBREW_VERSION" | 
					
						
							|  |  |  | if [[ -z "$HOMEBREW_VERSION" ]] | 
					
						
							|  |  |  | then | 
					
						
							| 
									
										
										
										
											2020-09-09 12:05:40 -07:00
										 |  |  |   HOMEBREW_VERSION=">=2.5.0 (shallow or no git repository)" | 
					
						
							| 
									
										
										
										
											2020-09-09 12:22:45 -05:00
										 |  |  |   HOMEBREW_USER_AGENT_VERSION="2.X.Y" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-18 19:57:19 +01:00
										 |  |  | if [[ -n "$HOMEBREW_MACOS" ]] | 
					
						
							| 
									
										
										
										
											2016-04-04 11:46:33 +01:00
										 |  |  | then | 
					
						
							|  |  |  |   HOMEBREW_PRODUCT="Homebrew" | 
					
						
							|  |  |  |   HOMEBREW_SYSTEM="Macintosh" | 
					
						
							| 
									
										
										
										
											2020-07-08 12:30:45 -07:00
										 |  |  |   [[ "$HOMEBREW_PROCESSOR" = "x86_64" ]] && HOMEBREW_PROCESSOR="Intel" | 
					
						
							| 
									
										
										
										
											2016-09-18 19:57:19 +01:00
										 |  |  |   HOMEBREW_MACOS_VERSION="$(/usr/bin/sw_vers -productVersion)" | 
					
						
							| 
									
										
										
										
											2017-04-27 08:53:57 +01:00
										 |  |  |   HOMEBREW_OS_VERSION="macOS $HOMEBREW_MACOS_VERSION" | 
					
						
							|  |  |  |   # Don't change this from Mac OS X to match what macOS itself does in Safari on 10.12 | 
					
						
							|  |  |  |   HOMEBREW_OS_USER_AGENT_VERSION="Mac OS X $HOMEBREW_MACOS_VERSION" | 
					
						
							| 
									
										
										
										
											2016-04-04 11:46:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-04 09:31:37 +01:00
										 |  |  |   # Intentionally set this variable by exploding another. | 
					
						
							|  |  |  |   # shellcheck disable=SC2086,SC2183 | 
					
						
							| 
									
										
										
										
											2016-09-18 19:57:19 +01:00
										 |  |  |   printf -v HOMEBREW_MACOS_VERSION_NUMERIC "%02d%02d%02d" ${HOMEBREW_MACOS_VERSION//./ } | 
					
						
							| 
									
										
										
										
											2017-09-16 12:41:08 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-04 20:17:28 -07:00
										 |  |  |   # Refuse to run on pre-Yosemite | 
					
						
							|  |  |  |   if [[ "$HOMEBREW_MACOS_VERSION_NUMERIC" -lt "101000" ]] | 
					
						
							| 
									
										
										
										
											2019-01-08 19:13:46 +00:00
										 |  |  |   then | 
					
						
							| 
									
										
										
										
											2019-04-01 16:02:13 -04:00
										 |  |  |     printf "ERROR: Your version of macOS (%s) is too old to run Homebrew!\\n" "$HOMEBREW_MACOS_VERSION" >&2 | 
					
						
							| 
									
										
										
										
											2019-01-08 19:13:46 +00:00
										 |  |  |     if [[ "$HOMEBREW_MACOS_VERSION_NUMERIC" -lt "100700" ]] | 
					
						
							|  |  |  |     then | 
					
						
							| 
									
										
										
										
											2019-04-01 16:02:13 -04:00
										 |  |  |       printf "         For 10.4 - 10.6 support see: https://github.com/mistydemeo/tigerbrew\\n" >&2 | 
					
						
							| 
									
										
										
										
											2019-01-08 19:13:46 +00:00
										 |  |  |     fi | 
					
						
							| 
									
										
										
										
											2019-04-01 16:02:13 -04:00
										 |  |  |     printf "\\n" >&2 | 
					
						
							| 
									
										
										
										
											2019-01-08 19:13:46 +00:00
										 |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-27 20:44:13 -04:00
										 |  |  |   # The system Git on macOS versions before Sierra is too old for some Homebrew functionality we rely on. | 
					
						
							|  |  |  |   HOMEBREW_MINIMUM_GIT_VERSION="2.14.3" | 
					
						
							| 
									
										
										
										
											2018-09-06 12:38:20 +01:00
										 |  |  |   if [[ "$HOMEBREW_MACOS_VERSION_NUMERIC" -lt "101200" ]] | 
					
						
							| 
									
										
										
										
											2018-02-26 16:08:10 +00:00
										 |  |  |   then | 
					
						
							| 
									
										
										
										
											2018-06-25 23:36:12 -07:00
										 |  |  |     HOMEBREW_FORCE_BREWED_GIT="1" | 
					
						
							| 
									
										
										
										
											2018-02-26 16:08:10 +00:00
										 |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-18 17:54:05 +09:00
										 |  |  |   # Set a variable when the macOS system Ruby is new enough to avoid spawning | 
					
						
							|  |  |  |   # a Ruby process unnecessarily. | 
					
						
							| 
									
										
										
										
											2019-10-08 10:00:38 +01:00
										 |  |  |   if [[ "$HOMEBREW_MACOS_VERSION_NUMERIC" -lt "101500" ]] | 
					
						
							| 
									
										
										
										
											2019-04-18 17:54:05 +09:00
										 |  |  |   then | 
					
						
							|  |  |  |     unset HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     # Used in ruby.sh. | 
					
						
							|  |  |  |     # shellcheck disable=SC2034 | 
					
						
							|  |  |  |     HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH="1" | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2016-04-04 11:46:33 +01:00
										 |  |  | else | 
					
						
							|  |  |  |   HOMEBREW_PRODUCT="${HOMEBREW_SYSTEM}brew" | 
					
						
							|  |  |  |   [[ -n "$HOMEBREW_LINUX" ]] && HOMEBREW_OS_VERSION="$(lsb_release -sd 2>/dev/null)" | 
					
						
							| 
									
										
										
										
											2016-04-06 01:45:02 +02:00
										 |  |  |   : "${HOMEBREW_OS_VERSION:=$(uname -r)}" | 
					
						
							| 
									
										
										
										
											2017-04-27 08:53:57 +01:00
										 |  |  |   HOMEBREW_OS_USER_AGENT_VERSION="$HOMEBREW_OS_VERSION" | 
					
						
							| 
									
										
										
										
											2018-02-15 11:43:20 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-26 17:08:59 -04:00
										 |  |  |   # Ensure the system Curl is a version that supports modern HTTPS certificates. | 
					
						
							|  |  |  |   HOMEBREW_MINIMUM_CURL_VERSION="7.41.0" | 
					
						
							| 
									
										
										
										
											2020-05-04 03:16:51 -05:00
										 |  |  |   curl_version_output="$($HOMEBREW_CURL --version 2>/dev/null)" | 
					
						
							|  |  |  |   curl_name_and_version="${curl_version_output%% (*}" | 
					
						
							|  |  |  |   if [[ $(numeric "${curl_name_and_version##* }") -lt $(numeric "$HOMEBREW_MINIMUM_CURL_VERSION") ]] | 
					
						
							| 
									
										
										
										
											2018-10-26 17:08:59 -04:00
										 |  |  |   then | 
					
						
							| 
									
										
										
										
											2020-05-11 07:17:26 -05:00
										 |  |  |     if [[ -z $HOMEBREW_CURL_PATH ]]; then | 
					
						
							|  |  |  |       HOMEBREW_SYSTEM_CURL_TOO_OLD=1 | 
					
						
							|  |  |  |       HOMEBREW_FORCE_BREWED_CURL=1 | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       odie <<EOS | 
					
						
							|  |  |  | The version of cURL that you provided to Homebrew using HOMEBREW_CURL_PATH is too old. | 
					
						
							|  |  |  | Minimum required version: ${HOMEBREW_MINIMUM_CURL_VERSION}. | 
					
						
							|  |  |  | Your cURL version: ${curl_name_and_version##* }. | 
					
						
							| 
									
										
										
										
											2020-05-11 07:20:16 -05:00
										 |  |  | Please point Homebrew to cURL ${HOMEBREW_MINIMUM_CURL_VERSION} or newer | 
					
						
							| 
									
										
										
										
											2020-05-11 07:17:26 -05:00
										 |  |  | or unset HOMEBREW_CURL_PATH variable. | 
					
						
							|  |  |  | EOS | 
					
						
							|  |  |  |     fi | 
					
						
							| 
									
										
										
										
											2018-10-26 17:08:59 -04:00
										 |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Ensure the system Git is at or newer than the minimum required version. | 
					
						
							|  |  |  |   # Git 2.7.4 is the version of git on Ubuntu 16.04 LTS (Xenial Xerus). | 
					
						
							|  |  |  |   HOMEBREW_MINIMUM_GIT_VERSION="2.7.0" | 
					
						
							| 
									
										
										
										
											2020-05-04 03:16:51 -05:00
										 |  |  |   git_version_output="$($HOMEBREW_GIT --version 2>/dev/null)" | 
					
						
							| 
									
										
										
										
											2019-08-07 14:22:20 -04:00
										 |  |  |   # $extra is intentionally discarded. | 
					
						
							|  |  |  |   # shellcheck disable=SC2034 | 
					
						
							| 
									
										
										
										
											2020-05-04 03:16:51 -05:00
										 |  |  |   IFS=. read -r major minor micro build extra <<< "${git_version_output##* }" | 
					
						
							| 
									
										
										
										
											2019-08-07 14:22:20 -04:00
										 |  |  |   if [[ $(numeric "$major.$minor.$micro.$build") -lt $(numeric "$HOMEBREW_MINIMUM_GIT_VERSION") ]] | 
					
						
							| 
									
										
										
										
											2018-10-26 17:08:59 -04:00
										 |  |  |   then | 
					
						
							| 
									
										
										
										
											2020-05-11 07:20:16 -05:00
										 |  |  |     if [[ -z $HOMEBREW_GIT_PATH ]]; then | 
					
						
							|  |  |  |       HOMEBREW_FORCE_BREWED_GIT="1" | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       odie <<EOS | 
					
						
							|  |  |  | The version of Git that you provided to Homebrew using HOMEBREW_GIT_PATH is too old. | 
					
						
							|  |  |  | Minimum required version: ${HOMEBREW_MINIMUM_GIT_VERSION}. | 
					
						
							|  |  |  | Your Git version: $major.$minor.$micro.$build. | 
					
						
							|  |  |  | Please point Homebrew to Git ${HOMEBREW_MINIMUM_CURL_VERSION} or newer | 
					
						
							|  |  |  | or unset HOMEBREW_GIT_PATH variable. | 
					
						
							|  |  |  | EOS | 
					
						
							|  |  |  |     fi | 
					
						
							| 
									
										
										
										
											2018-10-26 17:08:59 -04:00
										 |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-18 17:54:05 +09:00
										 |  |  |   unset HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH | 
					
						
							| 
									
										
										
										
											2016-04-04 11:46:33 +01:00
										 |  |  | fi | 
					
						
							| 
									
										
										
										
											2018-02-15 13:26:17 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-20 13:58:27 +01:00
										 |  |  | if [[ -n "$HOMEBREW_MACOS" || -n "$HOMEBREW_FORCE_HOMEBREW_ON_LINUX" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   HOMEBREW_BOTTLE_DEFAULT_DOMAIN="https://homebrew.bintray.com" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   HOMEBREW_BOTTLE_DEFAULT_DOMAIN="https://linuxbrew.bintray.com" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-27 08:53:57 +01:00
										 |  |  | HOMEBREW_USER_AGENT="$HOMEBREW_PRODUCT/$HOMEBREW_USER_AGENT_VERSION ($HOMEBREW_SYSTEM; $HOMEBREW_PROCESSOR $HOMEBREW_OS_USER_AGENT_VERSION)" | 
					
						
							| 
									
										
										
										
											2018-10-26 17:08:59 -04:00
										 |  |  | curl_version_output="$("$HOMEBREW_CURL" --version 2>/dev/null)" | 
					
						
							|  |  |  | curl_name_and_version="${curl_version_output%% (*}" | 
					
						
							|  |  |  | HOMEBREW_USER_AGENT_CURL="$HOMEBREW_USER_AGENT ${curl_name_and_version// //}" | 
					
						
							| 
									
										
										
										
											2016-04-04 11:46:33 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Declared in bin/brew | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | export HOMEBREW_BREW_FILE | 
					
						
							|  |  |  | export HOMEBREW_PREFIX | 
					
						
							|  |  |  | export HOMEBREW_REPOSITORY | 
					
						
							|  |  |  | export HOMEBREW_LIBRARY | 
					
						
							| 
									
										
										
										
											2016-04-04 11:46:33 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Declared in brew.sh | 
					
						
							|  |  |  | export HOMEBREW_VERSION | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  | export HOMEBREW_DEFAULT_CACHE | 
					
						
							| 
									
										
										
										
											2016-05-03 16:01:42 +08:00
										 |  |  | export HOMEBREW_CACHE | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  | export HOMEBREW_DEFAULT_LOGS | 
					
						
							| 
									
										
										
										
											2018-12-26 17:03:31 -08:00
										 |  |  | export HOMEBREW_LOGS | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  | export HOMEBREW_DEFAULT_TEMP | 
					
						
							|  |  |  | export HOMEBREW_TEMP | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | export HOMEBREW_CELLAR | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  | export HOMEBREW_SYSTEM | 
					
						
							| 
									
										
										
										
											2016-04-04 11:46:33 +01:00
										 |  |  | export HOMEBREW_CURL | 
					
						
							| 
									
										
										
										
											2018-10-04 09:31:37 +01:00
										 |  |  | export HOMEBREW_SYSTEM_CURL_TOO_OLD | 
					
						
							| 
									
										
										
										
											2018-08-23 11:50:42 -04:00
										 |  |  | export HOMEBREW_GIT | 
					
						
							| 
									
										
										
										
											2018-10-27 20:44:13 -04:00
										 |  |  | export HOMEBREW_MINIMUM_GIT_VERSION | 
					
						
							| 
									
										
										
										
											2016-04-25 17:57:51 +01:00
										 |  |  | export HOMEBREW_PROCESSOR | 
					
						
							| 
									
										
										
										
											2016-04-12 11:02:22 +01:00
										 |  |  | export HOMEBREW_PRODUCT | 
					
						
							| 
									
										
										
										
											2016-04-04 11:46:33 +01:00
										 |  |  | export HOMEBREW_OS_VERSION | 
					
						
							| 
									
										
										
										
											2016-09-18 19:57:19 +01:00
										 |  |  | export HOMEBREW_MACOS_VERSION | 
					
						
							| 
									
										
										
										
											2018-09-20 13:49:10 +01:00
										 |  |  | export HOMEBREW_MACOS_VERSION_NUMERIC | 
					
						
							| 
									
										
										
										
											2016-04-04 11:46:33 +01:00
										 |  |  | export HOMEBREW_USER_AGENT | 
					
						
							|  |  |  | export HOMEBREW_USER_AGENT_CURL | 
					
						
							| 
									
										
										
										
											2019-05-17 17:29:12 +08:00
										 |  |  | export HOMEBREW_BOTTLE_DEFAULT_DOMAIN | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-10 23:31:31 -07:00
										 |  |  | if [[ -n "$HOMEBREW_MACOS" && -x "/usr/bin/xcode-select" ]] | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | then | 
					
						
							| 
									
										
										
										
											2016-06-08 05:53:10 -07:00
										 |  |  |   XCODE_SELECT_PATH=$('/usr/bin/xcode-select' --print-path 2>/dev/null) | 
					
						
							|  |  |  |   if [[ "$XCODE_SELECT_PATH" = "/" ]] | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   then | 
					
						
							|  |  |  |     odie <<EOS | 
					
						
							|  |  |  | Your xcode-select path is currently set to '/'. | 
					
						
							|  |  |  | This causes the 'xcrun' tool to hang, and can render Homebrew unusable. | 
					
						
							|  |  |  | If you are using Xcode, you should: | 
					
						
							|  |  |  |   sudo xcode-select -switch /Applications/Xcode.app | 
					
						
							|  |  |  | Otherwise, you should: | 
					
						
							|  |  |  |   sudo rm -rf /usr/share/xcode-select | 
					
						
							|  |  |  | EOS | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-08 05:53:10 -07:00
										 |  |  |   # Don't check xcrun if Xcode and the CLT aren't installed, as that opens | 
					
						
							|  |  |  |   # a popup window asking the user to install the CLT | 
					
						
							|  |  |  |   if [[ -n "$XCODE_SELECT_PATH" ]] | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   then | 
					
						
							| 
									
										
										
										
											2016-06-08 05:53:10 -07:00
										 |  |  |     XCRUN_OUTPUT="$(/usr/bin/xcrun clang 2>&1)" | 
					
						
							|  |  |  |     XCRUN_STATUS="$?" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if [[ "$XCRUN_STATUS" -ne 0 && "$XCRUN_OUTPUT" = *license* ]] | 
					
						
							|  |  |  |     then | 
					
						
							|  |  |  |       odie <<EOS | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | You have not agreed to the Xcode license. Please resolve this by running: | 
					
						
							| 
									
										
										
										
											2016-10-18 18:40:57 -07:00
										 |  |  |   sudo xcodebuild -license accept | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | EOS | 
					
						
							| 
									
										
										
										
											2016-06-08 05:53:10 -07:00
										 |  |  |     fi | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   fi | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [[ "$1" = -v ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   # Shift the -v to the end of the parameter list | 
					
						
							|  |  |  |   shift | 
					
						
							|  |  |  |   set -- "$@" -v | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-30 00:43:07 +03:00
										 |  |  | for arg in "$@" | 
					
						
							|  |  |  | do | 
					
						
							| 
									
										
										
										
											2020-07-30 18:40:10 +02:00
										 |  |  |   [[ $arg = "--" ]] && break | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-30 00:43:07 +03:00
										 |  |  |   if [[ $arg = "--help" || $arg = "-h" || $arg = "--usage" || $arg = "-?" ]] | 
					
						
							|  |  |  |   then | 
					
						
							|  |  |  |     export HOMEBREW_HELP="1" | 
					
						
							|  |  |  |     break | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-25 22:38:43 +01:00
										 |  |  | HOMEBREW_ARG_COUNT="$#" | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | HOMEBREW_COMMAND="$1" | 
					
						
							|  |  |  | shift | 
					
						
							|  |  |  | case "$HOMEBREW_COMMAND" in | 
					
						
							| 
									
										
										
										
											2016-08-07 11:56:51 +02:00
										 |  |  |   ls)          HOMEBREW_COMMAND="list" ;; | 
					
						
							|  |  |  |   homepage)    HOMEBREW_COMMAND="home" ;; | 
					
						
							|  |  |  |   -S)          HOMEBREW_COMMAND="search" ;; | 
					
						
							|  |  |  |   up)          HOMEBREW_COMMAND="update" ;; | 
					
						
							|  |  |  |   ln)          HOMEBREW_COMMAND="link" ;; | 
					
						
							|  |  |  |   instal)      HOMEBREW_COMMAND="install" ;; # gem does the same | 
					
						
							| 
									
										
										
										
											2017-02-21 04:35:52 -08:00
										 |  |  |   uninstal)    HOMEBREW_COMMAND="uninstall" ;; | 
					
						
							| 
									
										
										
										
											2016-08-07 11:56:51 +02:00
										 |  |  |   rm)          HOMEBREW_COMMAND="uninstall" ;; | 
					
						
							|  |  |  |   remove)      HOMEBREW_COMMAND="uninstall" ;; | 
					
						
							|  |  |  |   configure)   HOMEBREW_COMMAND="diy" ;; | 
					
						
							|  |  |  |   abv)         HOMEBREW_COMMAND="info" ;; | 
					
						
							|  |  |  |   dr)          HOMEBREW_COMMAND="doctor" ;; | 
					
						
							|  |  |  |   --repo)      HOMEBREW_COMMAND="--repository" ;; | 
					
						
							|  |  |  |   environment) HOMEBREW_COMMAND="--env" ;; | 
					
						
							|  |  |  |   --config)    HOMEBREW_COMMAND="config" ;; | 
					
						
							| 
									
										
										
										
											2018-05-16 17:33:40 +02:00
										 |  |  |   -v)          HOMEBREW_COMMAND="--version" ;; | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-13 18:01:25 +01:00
										 |  |  | if [[ "$HOMEBREW_COMMAND" = "cask" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   HOMEBREW_CASK_COMMAND="$1" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   case "$HOMEBREW_CASK_COMMAND" in | 
					
						
							|  |  |  |     instal) HOMEBREW_CASK_COMMAND="install" ;; # gem does the same | 
					
						
							|  |  |  |   esac | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-05 14:07:28 +00:00
										 |  |  | # Set HOMEBREW_DEV_CMD_RUN for users who have run a development command. | 
					
						
							|  |  |  | # This makes them behave like HOMEBREW_DEVELOPERs for brew update. | 
					
						
							|  |  |  | if [[ -z "$HOMEBREW_DEVELOPER" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   export HOMEBREW_GIT_CONFIG_FILE="$HOMEBREW_REPOSITORY/.git/config" | 
					
						
							|  |  |  |   HOMEBREW_GIT_CONFIG_DEVELOPERMODE="$(git config --file="$HOMEBREW_GIT_CONFIG_FILE" --get homebrew.devcmdrun 2>/dev/null)" | 
					
						
							|  |  |  |   if [[ "$HOMEBREW_GIT_CONFIG_DEVELOPERMODE" = "true" ]] | 
					
						
							|  |  |  |   then | 
					
						
							|  |  |  |     export HOMEBREW_DEV_CMD_RUN="1" | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2018-02-27 11:52:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   # Don't allow non-developers to customise Ruby warnings. | 
					
						
							|  |  |  |   unset HOMEBREW_RUBY_WARNINGS | 
					
						
							| 
									
										
										
										
											2019-04-18 17:43:33 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  |   # Disable Ruby options we don't need. RubyGems provides a decent speedup. | 
					
						
							|  |  |  |   RUBY_DISABLE_OPTIONS="--disable=gems,did_you_mean,rubyopt" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   # Don't disable did_you_mean for developers as it's useful. | 
					
						
							|  |  |  |   RUBY_DISABLE_OPTIONS="--disable=gems,rubyopt" | 
					
						
							| 
									
										
										
										
											2018-02-27 11:52:47 +00:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [[ -z "$HOMEBREW_RUBY_WARNINGS" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   export HOMEBREW_RUBY_WARNINGS="-W0" | 
					
						
							| 
									
										
										
										
											2017-12-05 14:07:28 +00:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-29 19:51:18 +01:00
										 |  |  | if [[ -z "$HOMEBREW_BOTTLE_DOMAIN" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   export HOMEBREW_BOTTLE_DOMAIN="$HOMEBREW_BOTTLE_DEFAULT_DOMAIN" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  | export HOMEBREW_BREW_DEFAULT_GIT_REMOTE="https://github.com/Homebrew/brew" | 
					
						
							| 
									
										
										
										
											2019-12-30 10:38:47 +00:00
										 |  |  | if [[ -z "$HOMEBREW_BREW_GIT_REMOTE" ]] | 
					
						
							| 
									
										
										
										
											2019-12-03 00:45:11 +09:00
										 |  |  | then | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  |   HOMEBREW_BREW_GIT_REMOTE="$HOMEBREW_BREW_DEFAULT_GIT_REMOTE" | 
					
						
							| 
									
										
										
										
											2019-12-03 00:45:11 +09:00
										 |  |  | fi | 
					
						
							| 
									
										
										
										
											2019-12-30 10:38:47 +00:00
										 |  |  | export HOMEBREW_BREW_GIT_REMOTE | 
					
						
							| 
									
										
										
										
											2019-12-03 00:45:11 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | if [[ -n "$HOMEBREW_MACOS" ]] || [[ -n "$HOMEBREW_FORCE_HOMEBREW_ON_LINUX" ]] | 
					
						
							|  |  |  | then | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  |   HOMEBREW_CORE_DEFAULT_GIT_REMOTE="https://github.com/Homebrew/homebrew-core" | 
					
						
							| 
									
										
										
										
											2019-12-03 00:45:11 +09:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  |   HOMEBREW_CORE_DEFAULT_GIT_REMOTE="https://github.com/Homebrew/linuxbrew-core" | 
					
						
							| 
									
										
										
										
											2019-12-30 10:38:47 +00:00
										 |  |  | fi | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  | export HOMEBREW_CORE_DEFAULT_GIT_REMOTE | 
					
						
							| 
									
										
										
										
											2019-12-30 10:38:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if [[ -z "$HOMEBREW_CORE_GIT_REMOTE" ]] | 
					
						
							|  |  |  | then | 
					
						
							| 
									
										
										
										
											2020-04-05 15:44:50 +01:00
										 |  |  |   HOMEBREW_CORE_GIT_REMOTE="$HOMEBREW_CORE_DEFAULT_GIT_REMOTE" | 
					
						
							| 
									
										
										
										
											2019-12-03 00:45:11 +09:00
										 |  |  | fi | 
					
						
							| 
									
										
										
										
											2019-12-30 10:38:47 +00:00
										 |  |  | export HOMEBREW_CORE_GIT_REMOTE | 
					
						
							| 
									
										
										
										
											2019-12-03 00:45:11 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-25 01:53:14 +02:00
										 |  |  | if [[ -f "$HOMEBREW_LIBRARY/Homebrew/cmd/$HOMEBREW_COMMAND.sh" ]] | 
					
						
							|  |  |  | then | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   HOMEBREW_BASH_COMMAND="$HOMEBREW_LIBRARY/Homebrew/cmd/$HOMEBREW_COMMAND.sh" | 
					
						
							| 
									
										
										
										
											2016-09-05 21:32:18 +01:00
										 |  |  | elif [[ -f "$HOMEBREW_LIBRARY/Homebrew/dev-cmd/$HOMEBREW_COMMAND.sh" ]] | 
					
						
							| 
									
										
										
										
											2016-05-25 01:53:14 +02:00
										 |  |  | then | 
					
						
							| 
									
										
										
										
											2016-09-05 21:32:18 +01:00
										 |  |  |   if [[ -z "$HOMEBREW_DEVELOPER" ]] | 
					
						
							|  |  |  |   then | 
					
						
							| 
									
										
										
										
											2016-10-26 16:33:35 -04:00
										 |  |  |     git config --file="$HOMEBREW_GIT_CONFIG_FILE" --replace-all homebrew.devcmdrun true 2>/dev/null | 
					
						
							| 
									
										
										
										
											2016-09-05 21:32:18 +01:00
										 |  |  |     export HOMEBREW_DEV_CMD_RUN="1" | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   HOMEBREW_BASH_COMMAND="$HOMEBREW_LIBRARY/Homebrew/dev-cmd/$HOMEBREW_COMMAND.sh" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-17 02:07:06 +08:00
										 |  |  | check-run-command-as-root | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-30 09:34:21 -04:00
										 |  |  | check-prefix-is-not-tmpdir | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-11 09:37:37 +01:00
										 |  |  | if [[ "$HOMEBREW_PREFIX" = "/usr/local" && | 
					
						
							| 
									
										
										
										
											2016-10-12 10:33:47 -07:00
										 |  |  |       "$HOMEBREW_PREFIX" != "$HOMEBREW_REPOSITORY" && | 
					
						
							| 
									
										
										
										
											2016-10-11 09:37:37 +01:00
										 |  |  |       "$HOMEBREW_CELLAR" = "$HOMEBREW_REPOSITORY/Cellar" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   cat >&2 <<EOS | 
					
						
							|  |  |  | Warning: your HOMEBREW_PREFIX is set to /usr/local but HOMEBREW_CELLAR is set | 
					
						
							|  |  |  | to $HOMEBREW_CELLAR. Your current HOMEBREW_CELLAR location will stop | 
					
						
							|  |  |  | you being able to use all the binary packages (bottles) Homebrew provides. We | 
					
						
							|  |  |  | recommend you move your HOMEBREW_CELLAR to /usr/local/Cellar which will get you | 
					
						
							|  |  |  | access to all bottles."
 | 
					
						
							|  |  |  | EOS | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-04 09:31:37 +01:00
										 |  |  | # Don't need shellcheck to follow this `source`. | 
					
						
							|  |  |  | # shellcheck disable=SC1090 | 
					
						
							| 
									
										
										
										
											2016-04-12 11:02:22 +01:00
										 |  |  | source "$HOMEBREW_LIBRARY/Homebrew/utils/analytics.sh" | 
					
						
							|  |  |  | setup-analytics | 
					
						
							| 
									
										
										
										
											2016-03-28 09:33:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | if [[ -n "$HOMEBREW_BASH_COMMAND" ]] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   # source rather than executing directly to ensure the entire file is read into | 
					
						
							|  |  |  |   # memory before it is run. This makes running a Bash script behave more like | 
					
						
							|  |  |  |   # a Ruby script and avoids hard-to-debug issues if the Bash script is updated | 
					
						
							|  |  |  |   # at the same time as being run. | 
					
						
							|  |  |  |   # | 
					
						
							| 
									
										
										
										
											2018-10-04 09:31:37 +01:00
										 |  |  |   # Don't need shellcheck to follow this `source`. | 
					
						
							|  |  |  |   # shellcheck disable=SC1090 | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  |   source "$HOMEBREW_BASH_COMMAND" | 
					
						
							| 
									
										
										
										
											2018-12-29 19:06:18 +00:00
										 |  |  |   { update-preinstall "$@"; "homebrew-$HOMEBREW_COMMAND" "$@"; exit $?; } | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2018-10-04 09:31:37 +01:00
										 |  |  |   # Don't need shellcheck to follow this `source`. | 
					
						
							|  |  |  |   # shellcheck disable=SC1090 | 
					
						
							| 
									
										
										
										
											2016-07-12 08:51:36 +01:00
										 |  |  |   source "$HOMEBREW_LIBRARY/Homebrew/utils/ruby.sh" | 
					
						
							|  |  |  |   setup-ruby-path | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-25 22:38:43 +01:00
										 |  |  |   # Unshift command back into argument list (unless argument list was empty). | 
					
						
							|  |  |  |   [[ "$HOMEBREW_ARG_COUNT" -gt 0 ]] && set -- "$HOMEBREW_COMMAND" "$@" | 
					
						
							| 
									
										
										
										
											2019-04-19 15:21:16 +09:00
										 |  |  |   { update-preinstall "$@"; exec "$HOMEBREW_RUBY_PATH" $HOMEBREW_RUBY_WARNINGS "$RUBY_DISABLE_OPTIONS" "$HOMEBREW_LIBRARY/Homebrew/brew.rb" "$@"; } | 
					
						
							| 
									
										
										
										
											2016-02-16 09:29:03 +00:00
										 |  |  | fi |