Merge pull request #801 from MikeMcQuaid/git-shim-realpath
scm/git: make --homebrew=print-path use realpath.
This commit is contained in:
commit
6622b565ee
@ -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" "$@"
|
||||
}
|
||||
|
||||
@ -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 "$@"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user