mainly changes to keep systems up to date
[distro-setup] / system-status
index c6f3fe7f5144d3c3661196289cc8cfbb062059ed..25a637ee9606788c97e22949b470a811428abf16 100755 (executable)
@@ -35,6 +35,39 @@ write-status() {
     chars+=("MAILPING!")
   fi
 
+
+  if ! make -q ~/.local/distro-begin || [[ $(<~/.local/distro-begin) != 0 ]]; then
+    chars+=("DISTRO-BEGIN!")
+  fi
+
+  if ! make -q ~/.local/distro-end || [[ $(<~/.local/distro-end) != 0 ]]; then
+    chars+=("DISTRO-END!")
+  fi
+
+  f=~/.local/conflink
+  if [[ -e $f ]]; then
+    cd /b/ds
+    now=$(date +%s)
+    fsec=$(stat -c%Y $f)
+    fmin=$(( (fsec - now ) / 60 + 1 ))
+    fminplus=$(( fmin + 60*24 ))
+    # Filesystem files get copied, so find any newer than the last run.
+    # The rest are hueristics:
+    # Given the last time we added a file in git, is that newer than the last conflink run.
+    # Given new files not added to git, were they modified more recently than the last conflink? but,
+    # push their modification time back by a day so we can develop them before needing to add them to git.
+    if (( $(date -d "$(git log --diff-filter=ACR --format=%aD -1)" +%s) > fsec )) || \
+         [[ $(find {/a/bin/ds,/p/c}{/filesystem,/machine_specific/$HOSTNAME/filesystem} -mmin $fmin -type f -print -quit 2>/dev/null) ]] \
+         || [[ $(find $(git ls-files -o --exclude-standard) -mmin $fminplus -type f -print -quit) ]]; then
+      chars+=("CONFLINK!")
+    fi
+  fi
+
+  if [[ ! -e $f || $(<$f) != 0 ]]; then
+    chars+=("CONFLINK!")
+  fi
+
+
   ## Clean the paniclog, but only up to 4 times per day, or else we
   ## should investigate.
   loglog=/tmp/panicloglog-$(date --rfc-3339=date)