Session-gated MinIO save sync with AppImage GUI, CLI edit/session flow, and Gitea release helper. Co-authored-by: Cursor <[email protected]>
61 lines
1.6 KiB
Markdown
61 lines
1.6 KiB
Markdown
# Add / remove games
|
|
|
|
## Add
|
|
|
|
```bash
|
|
syncgames add \
|
|
--name "Elden Ring (Seamless)" \
|
|
--platform steam \
|
|
--paths "/absolute/or/~/path/to/save/dir_or_file" \
|
|
--versions 5 \
|
|
--steam-appid 1245620 \
|
|
--process-name eldenring.exe
|
|
```
|
|
|
|
Effects:
|
|
|
|
1. Writes `config/games/<slug>.toml` (or `~/.config/syncgames/games/` depending on config root).
|
|
2. Ensures remote prefixes `games/<slug>/live/` and empty `meta.json` if absent (does not overwrite existing live).
|
|
3. Does **not** upload local saves until first `end` after a `start` (or explicit first push with force after careful review).
|
|
|
|
Multiple `--paths` allowed. Globs are expanded at session time.
|
|
|
|
### Platforms
|
|
|
|
| Value | Meaning |
|
|
|-------|---------|
|
|
| `steam` | Steam / Proton; optional `steam_appid` for watchers |
|
|
| `eden` | Eden emulator saves |
|
|
| `yuzu` | Yuzu / Yuzu-fork saves |
|
|
| `other` | Manual paths only |
|
|
|
|
## Session loop
|
|
|
|
```bash
|
|
syncgames start <game-id>
|
|
# launch game, play, quit
|
|
syncgames end <game-id>
|
|
```
|
|
|
|
With systemd watchers enabled, start/end can run automatically when the process appears/exits.
|
|
|
|
## Remove
|
|
|
|
```bash
|
|
syncgames remove <game-id>
|
|
# optional: syncgames remove <game-id> --purge-remote
|
|
```
|
|
|
|
Default:
|
|
|
|
1. Disable watchers for that game.
|
|
2. Move remote `games/<id>/` → `retired/<id>-<YYYYMMDD>/`.
|
|
3. Rename local TOML to `*.removed` or delete per flag.
|
|
4. Clear local session state.
|
|
|
|
`--purge-remote` permanently deletes remote prefixes (dangerous; requires typing game id again interactively when TTY).
|
|
|
|
## Templates
|
|
|
|
See [templates/game.toml](../templates/game.toml) and seeded examples under `config/games/`.
|