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