use latest node exporter
[distro-setup] / mailtest-check
index e28d5ae966750233f5778c20c26a7c1d58be54a6..02cdfcbcad94027f720563e87d6509c48f9c19f6 100755 (executable)
@@ -29,7 +29,7 @@ getspamdpid() {
   fi
 }
 pr() {
-  if [[ -e /var/lib/prometheus/node-exporter ]]; then
+  if $doprom && [[ -e /var/lib/prometheus/node-exporter ]]; then
     cat >>/var/lib/prometheus/node-exporter/mailtest-check.prom.$$
   fi
 }
@@ -66,7 +66,17 @@ fi
 # TODO, get je to deliver the local mailbox: /m/md/INBOX
 # dovecot appears to setup, i can t be sure.
 
+source /a/bin/bash_unpublished/source-state
 
+doprom=false
+case $HOSTNAME in
+  $MAIL_HOST|bk|je)
+    doprom=true
+    ;;
+  *)
+    rm -f /var/lib/prometheus/node-exporter/mailtest-check.prom*
+    ;;
+esac
 
 main() {
 
@@ -76,7 +86,7 @@ main() {
       froms=(ian@iankelling.org z@zroe.org testignore@je.b8.nz iank@gnu.org)
       ;;
     je)
-      froms=(ian@iankelling.org z@zroe.org testignore@expertpathologyreview.com testignore@amnimal.ninja)
+      froms=(ian@iankelling.org z@zroe.org iank@gnu.org testignore@amnimal.ninja)
       folders=(/m/md/je.b8.nz/testignore)
       ;;
     *)
@@ -144,7 +154,10 @@ EOF
           # servers.
           # example line that sed is parsing:
           # (-0.1 / 5.0 requ) DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,SPF_HELO_PASS=-0.001,SPF_PASS=-0.001,TVD_SPACE_RATIO=0.001 autolearn=_AUTOLEARN
-          raw_results="$($spamcpre sudo -u Debian-exim spamassassin -t --cf='score PYZOR_CHECK 0' <"$latest" | tail -n2 | head -n1 | sed -r 's/^\([^)]*\) *//;s/=[^, ]*([, ]|$)/ /g')"
+          resultfile=$(mktemp)
+          $spamcpre sudo -u Debian-exim spamassassin -t --cf='score PYZOR_CHECK 0' <"$latest" &>$resultfile
+
+          raw_results="$(tail $resultfile | grep -A1 -Fx /usr/local/bin/send-test-forward | tail -n1 | sed -r 's/^\([^)]*\) *//;s/=[^, ]*([, ]|$)/ /g')"
           for r in $raw_results; do
             case $r in
               # got this in an update 2022-01. dun care
@@ -195,7 +208,7 @@ EOF
             fi
           done
           if (( ${#results[@]} || ${#missing[@]} )); then
-            printf "$HOSTNAME spamtest %s/%s\n" "$latest"
+            printf "$HOSTNAME spamtest %s\n" "$latest"
             if (( ${#results[@]} )); then
               printf "unexpected %s" "${!results[*]} "
             fi
@@ -203,14 +216,18 @@ EOF
               printf "missing %s" "${missing[*]}"
             fi
             echo # ends our printf string buildup
-
-            if $int; then
-              echo mailtest-check: cat $latest:
-              cat $latest
-              echo mailtest-check: end of cat
-              echo "$(tput setaf 5 2>/dev/null ||:)█$(tput sgr0 2>/dev/null||:)%.0s" $(eval echo "{1..${COLUMNS:-60}}")
-            fi
+            cat $resultfile
+            echo mailtest-check: end of spam debug results
+
+            # less verbose debug output, commented since I might want it another time.
+            # if $int; then
+            #   echo mailtest-check: cat $latest:
+            #   cat $latest
+            #   echo mailtest-check: end of cat
+            #   echo "$(tput setaf 5 2>/dev/null ||:)█$(tput sgr0 2>/dev/null||:)%.0s" $(eval echo "{1..${COLUMNS:-60}}")
+            #fi
           fi
+          rm -f $resultfile
         fi # if spamdpid
       fi # if $slow