Include Lutris saves in local backups

This commit is contained in:
ltadeu6 2026-05-28 20:33:59 -03:00
parent 511d0c5309
commit 3a42d3a7c0
No known key found for this signature in database
GPG key ID: FB9FDAB6B6F3418D
2 changed files with 20 additions and 1 deletions

View file

@ -588,12 +588,14 @@ Estado atual:
- O servico `game-save-ludusavi-backup.service` executa Ludusavi em modo CLI.
- Os backups locais ficam em `~/Backups/game-saves/ludusavi`.
- O formato usado e `simple`, com retencao de 14 backups completos e 14 diferenciais por jogo.
- O backup roda uma segunda passada do Ludusavi com o Wine prefix `~/Games/none` apenas para jogos selecionados do Lutris: `Cloudpunk`, `Cyberpunk 2077`, `Dreamcore` e `Outer Wilds`.
Cuidados:
- Este fluxo e apenas local; nao ha Restic, OCI ou outro destino remoto para saves de jogos no estado atual.
- Se adicionar backup remoto depois, mantenha segredos fora do repo e prefira um repo separado dos backups do VPS.
- Nao faca backup bruto de `~/.local/share/Steam/steamapps`; prefira Ludusavi e excecoes pontuais para jogos nao detectados.
- Nao use `--wine-prefix ~/Games/none` em uma varredura geral sem nomes de jogos; isso gera muitos falsos positivos por causa dos arquivos de registro do prefix.
## Secrets e variaveis de ambiente

View file

@ -3,12 +3,18 @@
let
gameSaveBackupRoot = "${config.home.homeDirectory}/Backups/game-saves";
gameSaveLudusaviPath = "${gameSaveBackupRoot}/ludusavi";
gameSaveLutrisGames = [
"Cloudpunk"
"Cyberpunk 2077"
"Dreamcore"
"Outer Wilds"
];
gameSaveLudusaviBackup = pkgs.writeShellScript "game-save-ludusavi-backup" ''
set -eu
${pkgs.coreutils}/bin/mkdir -p ${lib.escapeShellArg gameSaveLudusaviPath}
exec ${pkgs.ludusavi}/bin/ludusavi \
${pkgs.ludusavi}/bin/ludusavi \
--try-manifest-update \
backup \
--path ${lib.escapeShellArg gameSaveLudusaviPath} \
@ -16,6 +22,17 @@ let
--full-limit 14 \
--differential-limit 14 \
--force
exec ${pkgs.ludusavi}/bin/ludusavi \
--try-manifest-update \
backup \
--path ${lib.escapeShellArg gameSaveLudusaviPath} \
--wine-prefix ${lib.escapeShellArg "${config.home.homeDirectory}/Games/none"} \
--format simple \
--full-limit 14 \
--differential-limit 14 \
--force \
${lib.concatMapStringsSep " " lib.escapeShellArg gameSaveLutrisGames}
'';
opencodeWithLibstdcxx = pkgs.symlinkJoin {
name = "opencode";