Drive games from per-game JSON manifests instead of raw zip scanning
Games are no longer discovered from *.zip files on the SMB share; each game now has its own <name>.json manifest (name/title/zip/start_cmd) living next to its zip, discovered dynamically via smbclient. Nothing about a game's identity or how to install/start it is hardcoded in the image anymore. The setup page also grew Start/Stop/Uninstall buttons, backed by real process tracking (Popen + terminate/kill). Piloted on stuntcar only (manifest already uploaded to the share); t7g has no manifest yet so it won't appear until one's added. The old game.sh/start_game.sh docker-exec launch path is left as-is for now and overlaps with the new Start button - noted in TODO.md for later cleanup. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NiNnj78HGx1KWyCCo39HSz
This commit is contained in:
@@ -13,3 +13,16 @@
|
||||
an HTML page on `${SETUP_PORT}` (`70${DISPLAY_NUM}`, published as `7099` by `run.sh`)
|
||||
listing every `*.zip` on the SMB share with an Installed/Install status per game; the
|
||||
user clicks "Install" to fetch+extract a specific game into `${GAMES_HOME}` on demand.
|
||||
|
||||
- **Manifest-driven games + Start/Stop/Uninstall (test balloon, `stuntcar` only)**: games are
|
||||
no longer discovered from raw `*.zip` files on the share. `setup_server.py` now lists
|
||||
`*.json` manifests instead (one per game, e.g. `Games\dosbox\stuntcar.json`), each
|
||||
declaring `name`/`title`/`zip`/`start_cmd`. The web page grew Start/Stop/Uninstall buttons
|
||||
alongside Install, driven entirely by that manifest — nothing about a game's identity or
|
||||
how to run it is hardcoded in the image anymore. Only `stuntcar.json` exists on the share
|
||||
so far (as a deliberate pilot); `t7g` has no manifest yet and will not show up in the setup
|
||||
page until one is added (`t7g.json` with a `start_cmd` for its `dosbox-0.74-3.conf`).
|
||||
`game.sh`/`scripts/start_game.sh` (the old `docker exec`-based launch path, with its
|
||||
hardcoded `DOSBOX_VERSION`/`run.bat` convention) were intentionally left untouched for this
|
||||
pilot and now overlap with the new Start button — worth reconciling (or removing) once the
|
||||
manifest approach is rolled out to all games.
|
||||
|
||||
Reference in New Issue
Block a user