For Top Speed always try to get a valid download link.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Linux Game Manager Core Map
|
||||
|
||||
Last refreshed: 2026-04-12
|
||||
Last refreshed: 2026-04-14
|
||||
|
||||
## Top-Level Structure
|
||||
|
||||
@@ -16,7 +16,7 @@ Last refreshed: 2026-04-12
|
||||
|
||||
- Installers: 42 (`.install/*.sh`)
|
||||
- Launcher definitions: 42 (`.launch/*.game`)
|
||||
- Launcher runnable entries: 30 (`.launch/*.sh`, both symlinks and files)
|
||||
- Launcher runnable entries: 31 (`.launch/*.sh`, both symlinks and files)
|
||||
- Update scripts: 5 (`.update/*.sh`)
|
||||
|
||||
Regenerate this snapshot with:
|
||||
@@ -30,7 +30,8 @@ python3 .codex/skills/linux-game-manager-dev/scripts/audit_game_catalog.py
|
||||
1. **Install flow**
|
||||
- `game_installer` builds menu from `.install/*.sh`.
|
||||
- Selected installer is sourced in the current shell.
|
||||
- Shared downloads try `curl` first, fall back to `wget` when available, and reject obvious HTML error pages for unknown file types.
|
||||
- Shared downloads try `curl` first, fall back to `wget` when available, validate archive payloads before install, and reject obvious HTML error pages for unknown file types.
|
||||
- `download_named()` shares the same cache validation path as `download()`, so resolved asset URLs must still produce a valid payload for their file extension.
|
||||
- If `.launch/<game>.game` exists and `.launch/<game>.sh` does not, the manager creates a symlink using the repository root, even if the installer changed directories.
|
||||
|
||||
2. **Launch flow**
|
||||
|
||||
Reference in New Issue
Block a user