mostly fixes
[distro-setup] / mailtest-check
index 02cdfcbcad94027f720563e87d6509c48f9c19f6..5cf79fe8278b8ae69532ee66fb17b60e49ac793a 100755 (executable)
@@ -148,16 +148,18 @@ EOF
           if [[ $(readlink /proc/$$/ns/net) != "$(readlink /proc/$spamdpid/ns/net)" ]]; then
             spamcpre="nsenter -t $spamdpid -n -m"
           fi
-
+          unset results
           declare -A results
           # pyzor fails for our test message, so dont put useless load on their
           # 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
           resultfile=$(mktemp)
-          $spamcpre sudo -u Debian-exim spamassassin -t --cf='score PYZOR_CHECK 0' <"$latest" &>$resultfile
+          $spamcpre sudo -u Debian-exim spamassassin -D -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')"
+          # note: on some mail, its 1 line after the send-test-forward, on others its 2 with a blank inbetween.
+          # I use the sed -n to filter this.
+          raw_results="$(tail $resultfile | grep -A2 -Fx /usr/local/bin/send-test-forward | tail -n+2 | sed -nr 's/^\([^)]*\) *//;s/=[^, ]*([, ]|$)/ /gp')"
           for r in $raw_results; do
             case $r in
               # got this in an update 2022-01. dun care
@@ -219,6 +221,12 @@ EOF
             cat $resultfile
             echo mailtest-check: end of spam debug results
 
+            # lets just handle 1 failure at a time in interactive mode.
+            if $int; then
+              echo mailtest-check: from: $from, to: $to
+              exit 0
+            fi
+
             # less verbose debug output, commented since I might want it another time.
             # if $int; then
             #   echo mailtest-check: cat $latest: