Mercurial > dotfiles
comparison .shell.d/00.path_manipulation.sh @ 135:de6d0a9a7e3f
path_manipulation: more flexible so it can be used on non-PATH items
| author | Augie Fackler <durin42@gmail.com> |
|---|---|
| date | Tue, 18 Aug 2009 13:43:57 -0500 |
| parents | 62bfb554ab85 |
| children | 7dfb7799567f |
comparison
equal
deleted
inserted
replaced
| 134:fe9d358b9fe8 | 135:de6d0a9a7e3f |
|---|---|
| 1 # Functions for manipulating $PATH. Split out so I can use them in .zshenv if I want. | 1 # Functions for manipulating $PATH. Split out so I can use them in .zshenv if I want. |
| 2 | 2 |
| 3 function insert_path_element() { | 3 function insert_path_element() { |
| 4 if echo "$PATH" | grep "$1:" >> /dev/null; then | 4 insert_element_into_var $1 PATH |
| 5 true | |
| 6 else | |
| 7 export PATH="$1:$PATH" | |
| 8 fi | |
| 9 } | 5 } |
| 10 | 6 |
| 11 function remove_path_element() { | 7 function remove_path_element() { |
| 12 if echo "$PATH" | grep "$1:" >> /dev/null; then | 8 remove_path_element $1 PATH |
| 13 export PATH="`echo $PATH | sed s%$1:%%`" | |
| 14 else | |
| 15 echo $1 not in PATH | |
| 16 fi | |
| 17 } | 9 } |
| 10 | |
| 11 function insert_element_into_var () { | |
| 12 eval varcontents=\$"$2" | |
| 13 eval varname="$2" | |
| 14 newcomp="$1" | |
| 15 if echo "$varcontents" | grep "$newcomp:" >> /dev/null; then | |
| 16 true | |
| 17 elif [[ "$varcontents" == "" ]] ; then | |
| 18 export $varname="$newcomp" | |
| 19 else | |
| 20 export $varname="$newcomp:$varcontents" | |
| 21 fi | |
| 22 } | |
| 23 | |
| 24 function remove_element_from_var() { | |
| 25 eval varcontents=\$"$2" | |
| 26 eval varname="$2" | |
| 27 newcomp="$1" | |
| 28 if echo "$varcontents" | grep "$newcomp:" >> /dev/null; then | |
| 29 export $varname="`echo $varcontents | sed s%$newcomp:%%`" | |
| 30 elif [[ "$varcontents" == "$newcomp" ]] ; then | |
| 31 unset $varname | |
| 32 else | |
| 33 echo $1 not in $varname | |
| 34 fi | |
| 35 } |
