aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hosts/sagittarius/headscale.nix8
1 files changed, 8 insertions, 0 deletions
diff --git a/hosts/sagittarius/headscale.nix b/hosts/sagittarius/headscale.nix
index 9a09590..05c5e5e 100644
--- a/hosts/sagittarius/headscale.nix
+++ b/hosts/sagittarius/headscale.nix
@@ -69,9 +69,17 @@ in
];
enableStrictShellChecks = true;
script = ''
+ #!/usr/bin/env bash
+ set -euo pipefail
+
[ ! -d /var/lib/backup/headscale ] && mkdir -p /var/lib/backup/headscale
TIMESTAMP="$(date +%Y%m%d%H%M%S)"
tar cvf "/var/lib/backup/headscale/$TIMESTAMP.backup.tar" /var/lib/headscale
+
+ find /var/lib/backup/headscale -type f -name '*.backup.tar' -print0 |
+ sort --zero-terminated --reverse |
+ tail --zero-terminated --lines=+6 |
+ xargs --null --no-run-if-empty rm --
'';
postStop = "systemctl start headscale.service";
};