Skip to content

Commit

Permalink
Fix how vcs_relative_path first resolves an absolute path (#304)
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesottaway authored Apr 27, 2020
1 parent 9041856 commit 87b7cd0
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions bin/_blackbox_common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -366,13 +366,22 @@ function enumerate_blackbox_repos() {
done
}

# Resolve the absolute path of a relative one
# Adapted from https://unix.stackexchange.com/a/483514
function abs() {
local _pwd bn
[ -d "${1}" ] && _pwd="${1}"
[ -f "${1}" ] && { _pwd=$(dirname "${1}") ; bn=/$(basename "${1}") ;}
pushd "$_pwd" >/dev/null || exit
echo "$(pwd)${bn}"
popd >/dev/null || exit
}

# Output the path of a file relative to the repo base
function vcs_relative_path() {
# Usage: vcs_relative_path file
local name="$1"
#python -c 'import os ; print(os.path.relpath("'"$(pwd -P)"'/'"$name"'", "'"$REPOBASE"'"))'
local p=$( printf "%s" "$( pwd -P )/${1}" | sed 's#//*#/#g' )
local name="${p#$REPOBASE}"
local name
name=$(abs "$1")
name="${name#$REPOBASE}"
name=$( printf "%s" "$name" | sed 's#^/##g' | sed 's#/$##g' )
printf "%s" "$name"
}
Expand Down

0 comments on commit 87b7cd0

Please sign in to comment.