fix sl ssh detection
authorIan Kelling <ian@iankelling.org>
Thu, 17 Oct 2019 15:29:07 +0000 (11:29 -0400)
committerIan Kelling <ian@iankelling.org>
Thu, 17 Oct 2019 15:29:07 +0000 (11:29 -0400)
.bashrc
brc2

diff --git a/.bashrc b/.bashrc
index 6780da6b0717979d282be522c1cba33a44d02eca..c27af43a08e607c9c6f863c551c552608add152d 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -55,17 +55,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
diff --git a/brc2 b/brc2
index 20780faa046aa30d3d11bf50ac1eaa33796f0e93..7c33bea3251ebbd08cea977f6b72dff156be36d2 100644 (file)
--- a/brc2
+++ b/brc2
@@ -817,13 +817,15 @@ sl() {
     info_date=${tmp::11}
     type=${info_date: -1}
     info_date=${info_date::10}
+    info_sec=$(date -d @$info_date +%s)
     # debug
     #e $(( $(stat -c%Y /b/ds/brc) - $(date -d @$info_date +%s) ))
-    if (( $(stat -c%Y /b/ds/brc) > $(date -d @$info_date +%s) )); then
+    if (( $(stat -c%Y /b/ds/brc) > info_sec || $(stat -c%Y /b/ds/.bashrc) > info_sec )); then
       old=true
     fi
   else
-    tmp=$(command ssh -t "${args[@]}" "$remote" "if test -e /p/sshinfo; then echo yes; fi") || return
+    # use this weird yes thing to ensure we know ssh succeeded
+    tmp=$(command ssh "${args[@]}" "$remote" "if test -e /p/sshinfo; then echo yes; fi") || return
     if [[ $tmp == yes ]]; then
       type=a
     else