aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2017-10-01 19:15:07 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2017-10-01 19:15:07 +0300
commit1459a7651d27a43f9350cbc69dd9a01369c3e5d5 (patch)
tree876780004214ff0b9c9843924839eb582c5d7d16
parentremove configure_git.sh (diff)
downloadlinux-home-1459a7651d27a43f9350cbc69dd9a01369c3e5d5.tar.gz
linux-home-1459a7651d27a43f9350cbc69dd9a01369c3e5d5.zip
path_add: prepend
-rw-r--r--%HOME%/.bash_utils/path.sh13
1 files changed, 7 insertions, 6 deletions
diff --git a/%HOME%/.bash_utils/path.sh b/%HOME%/.bash_utils/path.sh
index 9a0e1a2..9f1fdd4 100644
--- a/%HOME%/.bash_utils/path.sh
+++ b/%HOME%/.bash_utils/path.sh
@@ -29,19 +29,20 @@ path_add() (
local -A dest_dict
local -a dest_list
+ for path in ${src_list[@]+"${src_list[@]}"}; do
+ [ -n "${dest_dict[$path]+x}" ] && continue
+ dest_dict[$path]=1
+ dest_list+=("$path")
+ done
+
if [ -n "${PATH-}" ]; then
while IFS= read -d '' -r path; do
+ [ -n "${dest_dict[$path]+x}" ] && continue
dest_dict[$path]=1
dest_list+=("$path")
done < <( str_split -z -- "${PATH-}" ':' | xargs -0 -- readlink -z --canonicalize-missing -- )
fi
- for path in ${src_list[@]+"${src_list[@]}"}; do
- [ -n "${dest_dict[$path]+x}" ] && continue
- dest_dict[$path]=1
- dest_list+=("$path")
- done
-
str_join ':' ${dest_list[@]+"${dest_list[@]}"}
)