Look for .bashrc files in subdirectories.
authorIain Patterson <me@iain.cx>
Fri, 26 Feb 2010 09:27:16 +0000 (09:27 +0000)
committerIain Patterson <me@iain.cx>
Fri, 4 Oct 2013 11:05:30 +0000 (12:05 +0100)
.bash_profile

index b10aba7..56a1eb0 100644 (file)
@@ -4,6 +4,11 @@ if tty -s || [ "${0:0:1}" = "-" -o "$1" = "force" ]; then
   nocg=$?
   # Turn it off so we source stuff in the right order.
   shopt -u nocaseglob
+  # Remember if nullglob was on.
+  shopt -q nullglob
+  nullglob=$?
+  # Turn it on so we can look in subdirectories.
+  shopt -s nullglob
 
   # Remember LC_ALL.
   lc_all=$LC_ALL
@@ -23,7 +28,7 @@ BECOME.bashrc"
   profile_d=${PROFILE_HOME:-~}/.profile.d
   deps=
   unsorted=
-  for i in $profile_d/*.bashrc; do
+  for i in $profile_d/{*/,}*.bashrc; do
     dep=$(sed -n 's/^##*[      ]*profile-required:[    ]*//p' "$i")
     i="${i##$profile_d/}"
     if [ -n "$dep" ]; then
@@ -68,12 +73,14 @@ $deps"
 
   # Maybe turn nocaseglob back on.
   [ $nocg = 0 ] && shopt -s nocaseglob
+  # Maybe turn nullglob back off.
+  [ $nullglob = 0 ] || shopt -u nullglob
 
   # Reset LC_ALL.
   LC_ALL=$lc_all
 
   unset i d n dep deps profile_d path required unsorted sourced
-  unset lc_all nocg
+  unset lc_all nullglob nocg
 
   # Don't inherit failure from the last script.
   true