fix: Simplify create-links.bash path resolution
Replace the ~30-line get_script_dir() copy (duplicated a third time from bashrc/bash_profile) with a one-liner. This script is always executed directly, never sourced from another file, so BASH_SOURCE[0] reliably points to itself — the extra logic in get_script_dir() for the sourced-from-elsewhere case doesn't apply here.
This commit is contained in:
+1
-31
@@ -2,37 +2,7 @@
|
|||||||
|
|
||||||
# Define the path to the directory of this file if not already set
|
# Define the path to the directory of this file if not already set
|
||||||
if [ -z "${BASH_CONFIG_DIR}" ]; then
|
if [ -z "${BASH_CONFIG_DIR}" ]; then
|
||||||
# Define a function to get the real path of a script
|
BASH_CONFIG_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
||||||
# (works for most cases : either sourced script or executed script, posix shells)
|
|
||||||
get_script_dir() {
|
|
||||||
local target
|
|
||||||
# Si appelé depuis un script (Bash), on regarde qui a appelé la fonction (${BASH_SOURCE[1]})
|
|
||||||
# Si la fonction est exécutée directement dans le terminal, on se rabat sur ${BASH_SOURCE[0]} ou ${0}
|
|
||||||
if [ -n "${BASH_SOURCE}" ]; then
|
|
||||||
if [ "${#BASH_SOURCE[@]}" -gt 1 ]; then
|
|
||||||
target="${BASH_SOURCE[1]}"
|
|
||||||
else
|
|
||||||
target="${BASH_SOURCE[0]}"
|
|
||||||
fi
|
|
||||||
elif [ -n "${ZSH_VERSION}" ]; then
|
|
||||||
target="${(%):-%x}"
|
|
||||||
else
|
|
||||||
target="${0}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Résolution des liens symboliques POSIX
|
|
||||||
while [ -L "${target}" ]; do
|
|
||||||
local link
|
|
||||||
link=$(readlink "${target}")
|
|
||||||
case "${link}" in
|
|
||||||
/*) target="${link}" ;;
|
|
||||||
*) target="$(dirname "${target}")/${link}" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
(cd "$(dirname "${target}")" && pwd -P)
|
|
||||||
}
|
|
||||||
BASH_CONFIG_DIR=$(get_script_dir)
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd "${HOME}" || exit 1
|
cd "${HOME}" || exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user