Backup script fixes

This commit is contained in:
Aner Zakobar
2026-10-12 09:09:56 +03:00
parent c3115026e9
commit ae71395956
3 changed files with 115 additions and 46 deletions
+22
View File
@@ -37,6 +37,20 @@
let
cfg = config.homey.backup;
dataDir = config.homey.storage.mountPoint;
# The manual offload script backs up a mirror of the external HD onto a
# USB drive, so only extraPaths/extraExcludePaths actually under dataDir
# apply (e.g. eurovote's /var/lib/eurovote is OS state, out of scope here).
offloadDataPaths = lib.filter (lib.hasPrefix "${dataDir}/") cfg.extraPaths;
offloadExcludeDataPaths = lib.filter (lib.hasPrefix "${dataDir}/") cfg.extraExcludePaths;
offloadBackupScript = pkgs.replaceVars ../scripts/offload-backup.sh {
backupPaths = lib.concatMapStringsSep "\n " (p: ''"${p}"'') offloadDataPaths;
excludeArgs = lib.concatMapStringsSep "\n " (p: ''--exclude "${p}"'') offloadExcludeDataPaths;
};
offloadBackupPackage = pkgs.writeShellScriptBin "homey-offload-backup"
(builtins.readFile offloadBackupScript);
in
{
options.homey.backup = {
@@ -83,6 +97,14 @@ in
};
config = lib.mkIf cfg.enable {
# -----------------------------------------------------------------------
# Manual offload script — installed system-wide so its path list stays
# in sync with extraPaths/extraExcludePaths on every deploy, instead of
# being hand-copied and left to drift. Run via `homey-offload-backup`
# in the dev shell.
# -----------------------------------------------------------------------
environment.systemPackages = [ offloadBackupPackage ];
# -----------------------------------------------------------------------
# Secrets
# -----------------------------------------------------------------------