From eca5f967cd56d7287e29a57f1c8c119e64b73e5d Mon Sep 17 00:00:00 2001 From: Aguirre Matteo Date: Sat, 29 Nov 2025 09:29:38 -0300 Subject: [PATCH] ludusavi: use config.xdg.stateHome instead of $XDG_STATE_HOME --- modules/services/ludusavi.nix | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/modules/services/ludusavi.nix b/modules/services/ludusavi.nix index c301b82bf..ab5602dce 100644 --- a/modules/services/ludusavi.nix +++ b/modules/services/ludusavi.nix @@ -49,9 +49,17 @@ in default = { manifest.url = "https://raw.githubusercontent.com/mtkennerly/ludusavi-manifest/master/data/manifest.yaml"; roots = [ ]; - backup.path = "$XDG_STATE_HOME/backups/ludusavi"; - restore.path = "$XDG_STATE_HOME/backups/ludusavi"; + backup.path = "${config.xdg.stateHome}/backups/ludusavi"; + restore.path = "${config.xdg.stateHome}/backups/ludusavi"; }; + defaultText = '' + { + manifest.url = "https://raw.githubusercontent.com/mtkennerly/ludusavi-manifest/master/data/manifest.yaml"; + roots = [ ]; + backup.path = "$XDG_STATE_HOME/backups/ludusavi"; + restore.path = "$XDG_STATE_HOME/backups/ludusavi"; + } + ''; example = { language = "en-US"; theme = "light"; @@ -94,6 +102,24 @@ in Service = { Type = "oneshot"; ExecStart = "${lib.getExe cfg.package} backup --force"; + ExecStartPre = "${pkgs.writeShellScript "ludusavi-migrate-backup" '' + old_base_dir="${config.home.homeDirectory}/\$XDG_STATE_HOME" + old_dir="$old_base_dir/backups/ludusavi" + new_base_dir="${config.xdg.stateHome}/backups" + new_dir="$new_base_dir/ludusavi" + + if [[ -d "$old_base_dir" ]]; then + echo "Migrating old Ludusavi's backup... (See home-manager/#8234)" + if [[ ! -d "$new_base_dir" ]]; then + mkdir -p "$new_base_dir" + fi + + mv "$old_dir" "$new_dir" + rmdir "$old_base_dir/backups" + rmdir "$old_base_dir" + echo "Migration completed successfully." + fi + ''}"; } // lib.optionalAttrs cfg.backupNotification { ExecStartPost = "${lib.getExe pkgs.libnotify} 'Ludusavi' 'Backup completed' -i com.mtkennerly.ludusavi -a 'Ludusavi'";