git.fiddlerwoaroof.com
Browse code

feat(zsh): simplify $PATH setup for now

Edward Langley authored on 01/02/2023 08:45:04
Showing 3 changed files
... ...
@@ -1,37 +1,11 @@
1 1
 #:depends-on:utils
2 2
 #:depends-on:nix
3 3
 #:depends-on:java
4
-#:depends-on:pfff
5 4
 ###
6 5
 
7
-#while [[ -n "${path[${path[(i)<<<]},${path[(i)>>>]}]}" ]]; do
8
-#  path[${path[(i)<<<]},${path[(i)>>>]}]=()
9
-#done
6
+orig_paths=("${path[@]}")
7
+for fw_p in "$orig_paths[@]"; do
8
+  push_exe_path "$fw_p"
9
+done
10 10
 
11
-prepend_exe_path "$HOME/Library/Python/2.7/bin"
12
-prepend_exe_path "$HOME/go/bin"
13
-prepend_exe_path "$HOME/.rvm/bin"
14
-prepend_exe_path /Library/Frameworks/Mono.framework/Versions/Current/Commands
15
-prepend_exe_path /usr/local/share/dotnet
16
-prepend_exe_path /bin
17
-prepend_exe_path /usr/bin
18
-prepend_exe_path /Developer/usr/bin
19
-prepend_exe_path /usr/local/bin
20
-prepend_exe_path "$HOME/.cargo/bin"
21
-prepend_exe_path /opt/local/bin
22
-prepend_exe_path /usr/X11/bin
23
-prepend_exe_path "$HOME/vim8/bin"
24
-prepend_exe_path "$HOME/.cabal/bin"
25
-prepend_exe_path "$HOME/.local/bin"
26
-prepend_exe_path "$JAVA_HOME"/bin
27
-prepend_exe_path "$HOME/.nix-profile/bin"
28
-prepend_exe_path "$HOME/bin"
29
-prepend_exe_path /opt/homebrew/bin
30
-
31
-prepend_exe_path /sbin
32
-prepend_exe_path /usr/sbin
33
-prepend_exe_path /usr/local/sbin
34
-prepend_exe_path /opt/local/sbin
35
-prepend_exe_path "$HOME/.nix-profile/sbin"
36
-
37
-PATH="${PATH%:}"
11
+push_exe_path "$JAVA_HOME"/bin
... ...
@@ -4,19 +4,30 @@ interactive_echo() {
4 4
   esac
5 5
 }
6 6
 
7
+remove_path() {
8
+  cur_idx=$path[(i)$1]
9
+  while (( $cur_idx <= $#path )); do
10
+    path[$cur_idx]=()
11
+    cur_idx=$path[(i)$1]
12
+  done
13
+}
14
+
7 15
 add_exe_path() {
16
+  remove_path "$1"
8 17
   if [[ -d $1 ]]; then
9 18
     path+=("$@")
10 19
   fi
11 20
 }
12 21
 
13 22
 push_exe_path() {
23
+  remove_path "$1"
14 24
   if [[ -d $1 ]]; then
15 25
     path+=("$@")
16 26
   fi
17 27
 }
18 28
 
19 29
 prepend_exe_path() {
30
+  remove_path "$1"
20 31
   if [[ -d $1 ]]; then
21 32
     path[1]=("$@" "$path[1]")
22 33
   fi
... ...
@@ -51,7 +51,6 @@ else
51 51
 
52 52
   init_scripts=( $PLUGIN_DIR/*.{,z}sh(N) )
53 53
 
54
-  PATH="<<<:$PATH:>>>"
55 54
   if [[ -f ~/zshrc.depends ]]; then
56 55
     source ~/zshrc.depends
57 56
   fi