various improvements
[distro-setup] / .bashrc
diff --git a/.bashrc b/.bashrc
index 7db792c3448da92d3e929ea4e04c76c513bd2637..53e4138d07b1ae1ba1e2fdacee445da6360a7491 100644 (file)
--- a/.bashrc
+++ b/.bashrc
 # which we could test for, but I can't think of a way to make that
 # inherently limited to a single ssh command.  I choose to set SendEnv
 # and AcceptEnv ssh config vars to allow the environment variable
-# BASH_LOGIN_SHELL to propagate across ssh.
+# BASH_LOGIN_SHELL to propagate across ssh. This also requires that we
+# wrap ssh in interactive shells, because, once we export the var, it
+# will go into scripts and theres no way to automatically set it.
 
-# assume we want ssh commands to source this file if we are sourcing it,
-# and we haven't specified otherwise already
-[[ ! $BASH_LOGIN_SHELL ]] && export BASH_LOGIN_SHELL=true
-#BASH_LOGIN_SHELL=false # temporary override
 
 # first conditions show that we are an ssh command without an interactive shell
 if [[ $SSH_CONNECTION ]] \
        && [[ $- == *c* ]] \
        && [[ ! $SSH_TTY ]] \
        && [[ $- != *i* ]] \
-       && [[ ! $BASH_LOGIN_SHELL == true ]]; then
-    return
+       && [[ $BASH_LOGIN_SHELL != true ]]; then
+    return 0
 else
-    source /etc/profile
-    source ~/brc
+    if [[ -r /etc/profile ]]; then
+        source /etc/profile
+    fi
+    _x=$(readlink -f $BASH_SOURCE)
+    _x=${_x%/*}/brc
+    if [[ -r $_x ]]; then
+        source $_x
+    fi
 fi
+# ensure no bad programs appending to this file will have an affect
+return 0