-if tty -s || [ "${0:0:1}" = "-" -o "$1" = "force" ]; then
+if [ -t 0 -o "${0:0:1}" = "-" -o "$1" = "force" ]; then
+ # Set up PROFILE_HOME if called outside HOME.
+ if [ -z "$PROFILE_HOME" ]; then
+ # BASH_SOURCE isn't available prior to bash 3.
+ profile_home=${BASH_SOURCE%/*}
+ [ -n "$profile_home" -a -d "$profile_home" -a ! "${profile_home:0:1}" = "/" ] && profile_home=$(readlink -f "$profile_home" 2>/dev/null)
+ [ "$profile_home" = "$BASH_SOURCE" ] && profile_home=$PWD
+ [ "$profile_home" = "$HOME" ] || PROFILE_HOME=$profile_home
+ PROFILE_RC="$profile_home/.bash_profile"
+ unset profile_home
+ fi
+
# Remember if nocaseglob was on.
shopt -q nocaseglob
nocg=$?
PATH=/usr/bin:/bin:/usr/ccs/bin
# Sort all scripts by dependencies.
- profile_d=${PROFILE_HOME:-~}/.profile.d
+ 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/}"
+ i="${i##$PROFILE_D/}"
if [ -n "$dep" ]; then
for d in $dep; do
deps="$deps
# Source them all in the right order.
sourced=
for i in $deps; do
- for j in $profile_d/{,*/}$i; do
+ for j in $PROFILE_D/{,*/}$i; do
[ -e "$j" ] || continue
- k="${j##$profile_d/}"
+ k="${j##$PROFILE_D/}"
[ "${sourced/ $k /}" = "$sourced" ] || continue
. "$j"
sourced="$sourced $k "
# Reset LC_ALL.
LC_ALL=$lc_all
- unset i j k d n dep deps profile_d path required unsorted sourced
+ unset i j k d n dep deps path required unsorted sourced
unset lc_all nullglob nocg
# Don't inherit failure from the last script.