Fix how vcs_relative_path first resolves an absolute path (#304)

This commit is contained in:
James Ottaway
2020-04-27 22:51:24 +10:00
committed by GitHub
parent 90418566e3
commit 87b7cd0eae

View File

@@ -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"
}