X-Git-Url: http://git.iain.cx/?p=profile.git;a=blobdiff_plain;f=.profile.d%2FPATH.bashrc;h=fa7fa01ef2b97cc4acfa9b4d90e977c6c3bd12f8;hp=66d61b3b304716b2bb881bb83ea1e7053e03886c;hb=819bb88d5a014a23150b8fd609d194e883958674;hpb=7e973fb6a4ec8da564b4621658e2c4d583560d33 diff --git a/.profile.d/PATH.bashrc b/.profile.d/PATH.bashrc index 66d61b3..fa7fa01 100644 --- a/.profile.d/PATH.bashrc +++ b/.profile.d/PATH.bashrc @@ -1,5 +1,3 @@ -# $Id$ -# # Path information is stored on separate lines in XXXdirs. # We extract each directory exists and add it to the appropriate PATH. # @@ -27,15 +25,24 @@ function makepath() { # Check the file exists. [ -e "$DIR/$dirs" ] || return + # Set IFS to newline only so that we can read $(embedded shell commands). + JGD=$IFS + IFS=' +' # Read them. path= - for dir in $(cat "$DIR/$dirs"); do + while read dir; do + dir=$(eval echo "$dir") [ -d "$dir" ] || continue path="$path:$dir" - done + done < "$DIR/$dirs" unset dir + # Restore IFS. + IFS=$JGD + unset JGD + # Sanitise path. path=${path#:} [ -z "$path" ] && return