diff options
| author | Mike McQuaid | 2016-09-01 07:46:58 +0100 |
|---|---|---|
| committer | GitHub | 2016-09-01 07:46:58 +0100 |
| commit | 6622b565ee38de1cd97f5c7b20fa62b481a1ec9b (patch) | |
| tree | 15bbbd19da5b9b096d0e02162fd72e4fd4fc618c | |
| parent | 7b2798cb3509b8c6fb49487b04ec423d287262d0 (diff) | |
| parent | 408ac6088f0cdb32c6c033df4f4c18b8ce7829c1 (diff) | |
| download | brew-6622b565ee38de1cd97f5c7b20fa62b481a1ec9b.tar.bz2 | |
Merge pull request #801 from MikeMcQuaid/git-shim-realpath
scm/git: make --homebrew=print-path use realpath.
| -rw-r--r-- | Library/Homebrew/cmd/update.sh | 5 | ||||
| -rwxr-xr-x | Library/Homebrew/shims/scm/git | 25 |
2 files changed, 18 insertions, 12 deletions
diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh index b052631fe..c0658aa4c 100644 --- a/Library/Homebrew/cmd/update.sh +++ b/Library/Homebrew/cmd/update.sh @@ -17,10 +17,7 @@ source "$HOMEBREW_LIBRARY/Homebrew/utils/lock.sh" git() { if [[ -z "$GIT_EXECUTABLE" ]] then - GIT_EXECUTABLE_RELATIVE="$("$HOMEBREW_LIBRARY/Homebrew/shims/scm/git" --homebrew=print-path)" - GIT_EXECUTABLE_BASE="$(basename "$GIT_EXECUTABLE_RELATIVE")" - GIT_EXECUTABLE_DIR="$(cd "$(dirname "$GIT_EXECUTABLE_RELATIVE")" && pwd)" - GIT_EXECUTABLE="$GIT_EXECUTABLE_DIR/$GIT_EXECUTABLE_BASE" + GIT_EXECUTABLE="$("$HOMEBREW_LIBRARY/Homebrew/shims/scm/git" --homebrew=print-path)" fi "$GIT_EXECUTABLE" "$@" } diff --git a/Library/Homebrew/shims/scm/git b/Library/Homebrew/shims/scm/git index 2a95b0181..eedca486b 100755 --- a/Library/Homebrew/shims/scm/git +++ b/Library/Homebrew/shims/scm/git @@ -9,15 +9,23 @@ quiet_safe_cd() { cd "$1" >/dev/null || { echo "Error: failed to cd to $1" >&2; exit 1; } } +absdir() { + quiet_safe_cd "${1%/*}/" && pwd -P +} + +dirbasepath() { + local dir="$1" + local base="${2##*/}" + echo "$dir/$base" +} + realpath() { local path="$1" local dir - local base local dest - dir="$(quiet_safe_cd "${path%/*}/" && pwd -P)" - base="${path##*/}" - path="$dir/$base" + dir="$(absdir "$path")" + path="$(dirbasepath "$dir" "$path")" while [[ -L "$path" ]] do @@ -28,9 +36,8 @@ realpath() { else path="$dir/$dest" fi - dir="$(quiet_safe_cd "${path%/*}/" && pwd -P)" - base="${path##*/}" - path="$dir/$base" + dir="$(absdir "$path")" + path="$(dirbasepath "$dir" "$path")" done echo "$path" @@ -58,7 +65,9 @@ safe_exec() { fi if [[ "$HOMEBREW" = "print-path" ]] then - echo "$arg0" + local dir="$(quiet_safe_cd "${arg0%/*}/" && pwd)" + local path="$(dirbasepath "$dir" "$arg0")" + echo "$path" exit fi exec "$@" |
