46 lines
2 KiB
Markdown
46 lines
2 KiB
Markdown
# Installers
|
|
|
|
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
|
|
|
|
## Current State
|
|
|
|
Installer behavior is split across game XML, gamemanager startup, addonsmanager, SteamCMD helpers, and agent scripts.
|
|
|
|
Important references:
|
|
|
|
- `Panel/modules/config_games/schema_server_config.xml`
|
|
- `Panel/modules/gamemanager/home_handling_functions.php`
|
|
- `Panel/modules/addonsmanager/module.php`
|
|
- `Panel/modules/steam_workshop/module.php`
|
|
- `Agent_Linux/ogp_agent.pl`
|
|
- `Agent-Windows/OGP64/OGP/ogp_agent.pl`
|
|
|
|
## Installer Types Seen In The Codebase
|
|
|
|
- SteamCMD-based installs
|
|
- download/extract installs
|
|
- script-driven installs
|
|
- Workshop/content installs
|
|
- profile/content copy workflows
|
|
|
|
## Recommended Model
|
|
|
|
Installer strategy should come from game capability metadata. The agent should execute trusted strategies, not arbitrary customer commands.
|
|
|
|
## Windows Agent Install Notes
|
|
|
|
The Windows agent is Cygwin-based under `Agent-Windows/OGP64`.
|
|
|
|
Common installed layout:
|
|
|
|
- Cygwin root: `C:\OGP64`
|
|
- Bash: `C:\OGP64\bin\bash.exe`
|
|
- Agent root: `C:\OGP64\OGP`
|
|
- Maintained launcher: `C:\OGP64\agent_start.bat`
|
|
- Stop launcher: `C:\OGP64\agent_stop.bat`
|
|
|
|
The launcher checks `%~dp0bin\bash.exe`, `C:\OGP64\bin\bash.exe`, `C:\cygwin64\bin\bash.exe`, and `C:\cygwin\bin\bash.exe`. Missing-bash errors should print every checked path and pause in manual use.
|
|
|
|
Generated config files under `/OGP/Cfg` are production state. `C:\OGP64\agent_start.bat` may create them from `.default` templates if missing, but update logic must preserve them. Restart-time auto-update may replace only `/OGP/ogp_agent.pl`; it must not overwrite `Cfg/Config.pm`, `Cfg/Preferences.pm`, `Cfg/bash_prefs.cfg`, service settings, passwords, server data, or logs.
|
|
|
|
When the Windows agent starts, `C:\OGP64\agent_start.bat` should be launched from the Cygwin root itself. It verifies the `gameserver` account, normalizes text files, validates `OGP\ogp_agent.pl`, and then launches the agent in the same console window. It should not call an installer wrapper from the start script.
|