minor bug fix
[distro-setup] / .bashrc
diff --git a/.bashrc b/.bashrc
index 6780da6b0717979d282be522c1cba33a44d02eca..ac3ec039e4d35ea9e63723692b173836776a3978 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -9,38 +9,9 @@
 #exec 2>>/a/tmp/bashlog
 
 
-# By default this file is sourced for ALL ssh commands. This is wonky.
-# Normally, this file is not sourced when a script is run, but we can
-# override that by having #!/bin/bash -l.  I want something similar for ssh
-# commands. when a local script runs an ssh command, this file should not be
-# sourced by default, but we should be able to override that.
-#
-# So here we test for conditions of a script under ssh and return if so.
-# And we don't keep the rest of the code in this file, because even
-# though we return, we already parsed the whole code, and as I develop
-# the code, the parsing can have errors, which can screw up cronjobs
-# etc.
-#
-# To test for an overriding condition, we have a few options. one is to
-# use an environment variable.  env variables sent across ssh are
-# strictly limited. ssh -t which sets $SSH_TTY, but within a script that
-# won't work because tty allocation will fail. However, I do use -t for
-# strange hosts, so we consider it an indicator. We could override an
-# obscure unused LC_var, like telephone, but I don't want to run into
-# some edge case where that messes things up. we could transfer a file
-# 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. This also requires that we
-# wrap ssh in interactive shells, because, once we export the var, it
-# will go into scripts, and we want it to be nondefault there.
-#
-# -c is set whenever a command is passed to ssh
-# -i is set whenever a command is not passed
+# see comments in brc2 sl() function for background.
 if [[ $SSH_CONNECTION ]] \
-     && [[ $- == *c* ]] \
-     && [[ $- != *i* ]] \
-     && { [[ ! $SSH_TTY ]] || [[ $BASH_LOGIN_SHELL == false ]] ; } ; then
+     && [[ $BRC != t ]];  then
   return 0
 else
 
@@ -55,17 +26,26 @@ else
     # this file, and we don't want to do that and cause an infinite
     # loop.
   fi
-  _x=$(readlink -f ${BASH_SOURCE[0]})
-  _x=${_x%/*}/brc
-  if [[ -r $_x ]]; then
+  _tmp=$(readlink -f ${BASH_SOURCE[0]})
+  _tmp=${_tmp%/*}
+  _tmp2=$_tmp/brc
+  if [[ -s $_tmp2 ]]; then
     # shellcheck source=./brc
-    source $_x
+    source $_tmp2
   fi
   # brc2 is for things i dont necessarily want on every system
-  _x=${_x%/*}/brc2
-  if [[ -r $_x ]]; then
+  _tmp2=$_tmp/brc2
+  if [[ -s $_tmp2 ]]; then
     # shellcheck source=./brc2
-    source $_x
+    source $_tmp2
+  else
+    # This check is for when running the sl() command,
+    # and the remote host got its type misidentified.
+    _tmp2=$_tmp/../brc2
+    if [[ -s $_tmp2 ]]; then
+      # shellcheck source=./brc2
+      source $_tmp2
+    fi
   fi
 fi
 # ensure no bad programs appending to this file will have an affect