diff options
-rwxr-xr-x | bin/misc-functions.sh | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh index ac08bd948..c8b7cc8b0 100755 --- a/bin/misc-functions.sh +++ b/bin/misc-functions.sh @@ -43,7 +43,20 @@ install_symlink_html_docs() { } # replacement for "readlink -f" or "realpath" +READLINK_F_WORKS="" canonicalize() { + if [[ -z ${READLINK_F_WORKS} ]] ; then + if [[ $(readlink -f -- /../ 2>/dev/null) == "/" ]] ; then + READLINK_F_WORKS=true + else + READLINK_F_WORKS=false + fi + fi + if ${READLINK_F_WORKS} ; then + readlink -f -- "$@" + return + fi + local f=$1 b n=10 wd=$(pwd) while (( n-- > 0 )); do while [[ ${f: -1} = / && ${#f} -gt 1 ]]; do |