diff options
Diffstat (limited to 'Library/ENV/scm/git')
| -rwxr-xr-x | Library/ENV/scm/git | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/Library/ENV/scm/git b/Library/ENV/scm/git deleted file mode 100755 index f277f6bb9..000000000 --- a/Library/ENV/scm/git +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/bash - -# This script because we support $GIT, $HOMEBREW_SVN, etc., Xcode-only and -# no Xcode/CLT configurations. Order is careful to be what the user would want. - -set +o posix - -quiet_safe_cd() { - cd "$1" >/dev/null || { echo "Error: failed to cd to $1" >&2; exit 1; } -} - -realpath() { - local path="$1" - local dir - local base - local dest - - dir="$(quiet_safe_cd "${path%/*}/" && pwd -P)" - base="${path##*/}" - path="$dir/$base" - - while [[ -L "$path" ]] - do - dest="$(readlink "$path")" - if [[ "$dest" = "/"* ]] - then - path="$dest" - else - path="$dir/$dest" - fi - dir="$(quiet_safe_cd "${path%/*}/" && pwd -P)" - base="${path##*/}" - path="$dir/$base" - done - - echo "$path" -} - -executable() { - local file="$1" - [[ -f "$file" && -x "$file" ]] -} - -lowercase() { - echo "$1" | tr '[:upper:]' '[:lower:]' -} - -safe_exec() { - local arg0="$1" - if ! executable "$arg0" - then - return - fi - # prevent fork-bombs - if [[ "$(lowercase "$arg0")" = "$SCM_FILE" || "$(realpath "$arg0")" = "$SCM_REAL" ]] - then - return - fi - if [[ "$HOMEBREW" = "print-path" ]] - then - echo "$arg0" - exit - fi - exec "$@" -} - -SCM_FILE="${0##*/}" -SCM_DIR="$(quiet_safe_cd "${0%/*}/" && pwd -P)" -SCM_REAL="$(realpath "$0")" - -if [[ "$1" = --homebrew=* ]] -then - HOMEBREW="${1:11}" - shift -fi - -case "$(lowercase "$SCM_FILE")" in - git) - [[ -n "$HOMEBREW_GIT" ]] && safe_exec "$(which "$HOMEBREW_GIT")" "$@" - [[ -n "$GIT" ]] && safe_exec "$(which "$GIT")" "$@" - ;; - svn) - [[ -n "$HOMEBREW_SVN" ]] && safe_exec "$(which "$HOMEBREW_SVN")" "$@" - ;; -esac - -brew_version="$(quiet_safe_cd "$SCM_DIR/../../../bin" && pwd -P)/$SCM_FILE" -safe_exec "$brew_version" "$@" - -IFS=$'\n' -for path in $(/usr/bin/which -a "$SCM_FILE" 2>/dev/null) -do - if [[ "$path" != "/usr/bin/$SCM_FILE" ]] - then - safe_exec "$path" "$@" - fi -done - -if executable "/usr/bin/xcode-select" -then - # xcode-select will return empty on no Xcode/CLT configuration. - # /usr/bin/<tool> will be a popup stub under such configuration. - # xcrun hangs if xcode-select is set to "/" - xcode_path="$(/usr/bin/xcode-select -print-path 2>/dev/null)" - [[ -n "$xcode_path" ]] || popup_stub=1 - if [[ -z "$popup_stub" && "$xcode_path" != "/" ]] - then - path="$(/usr/bin/xcrun -find "$SCM_FILE" 2>/dev/null)" - safe_exec "$path" "$@" - fi -fi - -path="/Applications/Xcode.app/Contents/Developer/usr/bin/$SCM_FILE" -safe_exec "$path" "$@" - -path="/usr/bin/$SCM_FILE" -[[ -z "$popup_stub" ]] && safe_exec "$path" "$@" - -echo "You must: brew install $SCM_FILE" >&2 -exit 1 |
