summary refs log tree commit diff
path: root/nixos/modules/services/mail/spamassassin.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/mail/spamassassin.nix')
-rw-r--r--nixos/modules/services/mail/spamassassin.nix17
1 files changed, 12 insertions, 5 deletions
diff --git a/nixos/modules/services/mail/spamassassin.nix b/nixos/modules/services/mail/spamassassin.nix
index 9bd415ef17e..ac878222b26 100644
--- a/nixos/modules/services/mail/spamassassin.nix
+++ b/nixos/modules/services/mail/spamassassin.nix
@@ -136,19 +136,26 @@ in
         Group = "spamd";
         StateDirectory = "spamassassin";
         ExecStartPost = "+${pkgs.systemd}/bin/systemctl -q --no-block try-reload-or-restart spamd.service";
-        SuccessExitStatus = "1";
       };
 
       script = ''
         set +e
-        ${pkgs.spamassassin}/bin/sa-update --verbose --gpghomedir=%S/spamassassin/sa-update-keys/
+        ${pkgs.spamassassin}/bin/sa-update --verbose --gpghomedir=/var/lib/spamassassin/sa-update-keys/
         rc=$?
         set -e
 
-        if [[ $rc -eq 0 ]]; then
-          # An update was available and installed.
-          ${pkgs.spamassassin}/bin/sa-compile
+        if [[ $rc -gt 1 ]]; then
+          # sa-update failed.
+          exit $rc
         fi
+
+        if [[ $rc -eq 1 ]]; then
+          # No update was available, exit successfully.
+          exit 0
+        fi
+
+        # An update was available and installed. Compile the rules.
+        ${pkgs.spamassassin}/bin/sa-compile
       '';
     };