From bde44cff9b6a0c0e733671392f7302550648a750 Mon Sep 17 00:00:00 2001
From: dadada <dadada@dadada.li>
Date: Sun, 22 Jan 2023 20:18:15 +0100
Subject: [PATCH] fix backup auto-mount

---
 nixos/modules/backup.nix                      | 25 +++++++++++++------
 ...se.age => gorgon-backup-passphrase-gs.age} |  0
 secrets/secrets.nix                           |  2 +-
 3 files changed, 19 insertions(+), 8 deletions(-)
 rename secrets/{gorgon-backup-gs-passphrase.age => gorgon-backup-passphrase-gs.age} (100%)

diff --git a/nixos/modules/backup.nix b/nixos/modules/backup.nix
index 06cf81d..e0d6417 100644
--- a/nixos/modules/backup.nix
+++ b/nixos/modules/backup.nix
@@ -60,15 +60,24 @@ in
   };
 
   config = {
-    fileSystems = mkIf cfg.gs.enable {
-      "/backup" = {
-        device = "/dev/disk/by-uuid/0fdab735-cc3e-493a-b4ec-cbf6a77d48d5";
-        fsType = "ext4";
-        options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
-      };
-    };
+    systemd.mounts = mkIf cfg.gs.enable [
+      {
+        type = "ext4";
+        what = "/dev/disk/by-uuid/0fdab735-cc3e-493a-b4ec-cbf6a77d48d5";
+        where = "/backup";
+        options = "nofail noauto";
+      }
+    ];
+
+    systemd.automounts = mkIf cfg.gs.enable [
+      {
+        where = "/backup";
+        automountConfig.TimeoutIdleSec = "600";
+      }
+    ];
 
     services.borgbackup.jobs.gs = mkIf cfg.gs.enable {
+      removableDevice = true;
       paths = "/";
       exclude = backupExcludes;
       repo = "/backup/${config.networking.hostName}";
@@ -88,6 +97,8 @@ in
       startAt = "monthly";
     };
 
+    systemd.services."borgbackup-job-gs".enable = false;
+    systemd.services."borgbackup-job-gs".wants = [ "backup.mount" ];
     systemd.timers."borgbackup-job-gs".enable = false;
 
     services.borgbackup.jobs.bs = mkIf cfg.bs.enable {
diff --git a/secrets/gorgon-backup-gs-passphrase.age b/secrets/gorgon-backup-passphrase-gs.age
similarity index 100%
rename from secrets/gorgon-backup-gs-passphrase.age
rename to secrets/gorgon-backup-passphrase-gs.age
diff --git a/secrets/secrets.nix b/secrets/secrets.nix
index 7650525..3fd977e 100644
--- a/secrets/secrets.nix
+++ b/secrets/secrets.nix
@@ -18,7 +18,7 @@ in
   "pruflas-wg-hydra-key.age".publicKeys = [ systems.pruflas dadada ];
   "hydra-github-authorization.age".publicKeys = [ systems.pruflas dadada ];
   "miniflux-admin-credentials.age".publicKeys = [ systems.surgat dadada ];
-  "gorgon-backup-gs-passphrase.age".publicKeys = [ systems.gorgon dadada ];
+  "gorgon-backup-passphrase-gs.age".publicKeys = [ systems.gorgon dadada ];
 } //
 backupSecrets "gorgon" //
 backupSecrets "ifrit" //