feat: Split _path_add into _path_append and _path_prepend

_path_add only ever appended to PATH, which didn't fit profile.d/krew
and profile.d/anyenv (they prepend, to take priority). Rename it to
_path_append for clarity and add _path_prepend alongside it, so both
orderings get the same dedup guard when needed — krew and anyenv
aren't converted yet, kept as plain PATH concatenation until then.
This commit is contained in:
2026-08-22 02:10:04 +02:00
parent a92c1c340f
commit bbcf389ace
3 changed files with 12 additions and 6 deletions
+7 -1
View File
@@ -25,12 +25,18 @@ function _source_dir_files() {
} }
# Source : https://superuser.com/questions/39751/add-directory-to-path-if-its-not-already-there # Source : https://superuser.com/questions/39751/add-directory-to-path-if-its-not-already-there
_path_add() { _path_append() {
if [ -d "$1" ] && [[ ":${PATH}:" != *":$1:"* ]]; then if [ -d "$1" ] && [[ ":${PATH}:" != *":$1:"* ]]; then
PATH="${PATH:+"${PATH}:"}$1" PATH="${PATH:+"${PATH}:"}$1"
fi fi
} }
_path_prepend() {
if [ -d "$1" ] && [[ ":${PATH}:" != *":$1:"* ]]; then
PATH="$1${PATH:+":${PATH}"}"
fi
}
_prompt_command_add() { _prompt_command_add() {
if [ -n "$1" ] && [[ ":${PROMPT_COMMAND}:" != *":$1:"* ]]; then if [ -n "$1" ] && [[ ":${PROMPT_COMMAND}:" != *":$1:"* ]]; then
PROMPT_COMMAND="${PROMPT_COMMAND:+"${PROMPT_COMMAND};"}$1" PROMPT_COMMAND="${PROMPT_COMMAND:+"${PROMPT_COMMAND};"}$1"
+4 -4
View File
@@ -1,6 +1,6 @@
# Customize PATH # Customize PATH
_path_add "${HOME}/.bin" _path_append "${HOME}/.bin"
_path_add "${HOME}/.local/bin" _path_append "${HOME}/.local/bin"
_path_add "${HOME}/bin" _path_append "${HOME}/bin"
_path_add "${HOME}/scripts" _path_append "${HOME}/scripts"
+1 -1
View File
@@ -5,4 +5,4 @@
[[ -r "${HOME}/.rvm/scripts/completion" ]] && source "${HOME}/.rvm/scripts/completion" [[ -r "${HOME}/.rvm/scripts/completion" ]] && source "${HOME}/.rvm/scripts/completion"
# Add RVM to PATH for scripting # Add RVM to PATH for scripting
[[ -r "${HOME}/.rvm/bin" ]] && _path_add "${HOME}/.rvm/bin" [[ -r "${HOME}/.rvm/bin" ]] && _path_append "${HOME}/.rvm/bin"