fix ordering for unified text file
authorIan Kelling <ian@iankelling.org>
Wed, 1 Mar 2023 22:07:40 +0000 (17:07 -0500)
committerIan Kelling <ian@iankelling.org>
Wed, 1 Mar 2023 22:07:40 +0000 (17:07 -0500)
mailtest-check

index 036aeff1a2faf981367d7ff69f9ebb98cff26a58..599d4b6a4157ab0ddc31e74b58b0766e8cc61bc4 100755 (executable)
@@ -28,11 +28,6 @@ getspamdpid() {
     done
   fi
 }
-pr() {
-  if $doprom && [[ -e /var/lib/prometheus/node-exporter ]]; then
-    cat >>/var/lib/prometheus/node-exporter/mailtest-check.prom.$$
-  fi
-}
 
 
 #### begin arg processing ####
@@ -81,6 +76,7 @@ esac
 
 main() {
 
+  local -a unexpected_spamd_results missing_dnswl last_usec
   case $HOSTNAME in
     bk)
       folders=(/m/md/{expertpathologyreview.com,amnimal.ninja}/testignore)
@@ -291,8 +287,10 @@ EOF
                 ;;
             esac
           done
-          pr <<EOF
+          mapfile -O ${#missing_dnswl[@]} -t missing_dnswl <<EOF
 mailtest_check_missing_dnswl{folder="$folder",from="$from"} $missing_dnswl
+EOF
+          mapfile -O ${#unexpected_spamd_results[@]} -t unexpected_spamd_results <<EOF
 mailtest_check_unexpected_spamd_results{folder="$folder",from="$from"} $unexpected
 EOF
         fi # if spamdpid
@@ -303,15 +301,25 @@ EOF
       e $((age_sec / 60)):$(( age_sec % 60 )) ago. to:$to from:$from $latest
 
       # usec = unix seconds
-      pr <<EOF
+      mapfile -O ${#last_usec[@]} -t last_usec <<EOF
 mailtest_check_last_usec{folder="$folder",from="$from"} $last_sec
 EOF
     done # end for from in ${froms[@]}
   done # end for folder in ${folders[@]}
 
   dir=/var/lib/prometheus/node-exporter
-  if [[ -e $dir  ]]; then
-    mv $dir/mailtest-check.prom.$$ $dir/mailtest-check.prom
+  path=$dir/mailtest-check.prom.$$
+  if $doprom && [[ -e $dir  ]]; then
+    for l in "${unexpected_spamd_results missing_dnswl[@]}"; do
+      printf "%s\n" "$l" >>$path
+      done
+    for l in "${missing_dnswl[@]}"; do
+      printf "%s\n" "$l" >>$path
+    done
+    for l in "${last_usec[@]}"; do
+      printf "%s\n" "$l" >>$path
+    done
+    mv $path $dir/mailtest-check.prom
     # note: node_textfile_mtime_seconds will tell us when this last happened. useful for debugging.
   fi
 }