mirror of
https://github.com/Ayymoss/Plutainer
synced 2026-08-24 14:32:06 -04:00
Mirroring the host's zone/ still broke the launcher, just one level lower.
Making the directories real was not enough: the leaf entries were symlinks
into the read-only gamefiles mount, so extracting through them still hit
EROFS and died at the same place.
[E] exception caught in main: failed to extract file:
zone/patch/iw4_credits_load.ff
The mistake was treating zone/ as host-owned. The rawfiles manifest writes
every file under zone/patch/ and zone/zonebuilder/, so those belong to the
launcher and must not be pre-populated at all. Checked before ceding them:
its 56 zone/patch entries are a strict superset of a full MW2 install's 39
(zero host-only files), and zone/zonebuilder is the same lone
zonebuilder_minigun.ff it ships. Only zone/english and zone/dlc are
mirrored now — the host's map fastfiles, which the launcher never writes,
since its DLC component targets iw3/zone/dlc/ instead.
link_dir_contents now accepts a nested name so one subtree can be mirrored
without disturbing its siblings, and replaces a symlink at every component
of the destination path rather than only the last: upgrading from an image
that symlinked `zone` itself would otherwise make mkdir -p follow the link
into the read-only mount and abort startup under set -e.
Consequence of the original bug, for the record: the crash aborted the run
before sync_dlc and sync_helper, and left rawfiles unstamped, so iw4x
client updates never applied and the server was pinned to r5046 forever.
|
||
|---|---|---|
| .. | ||
| alterentry.sh | ||
| entrypoint.sh | ||
| game-config.sh | ||
| healthcheck.sh | ||
| iw4xentry.sh | ||
| log-watcher.sh | ||
| migrate-v1-to-v2.sh | ||
| plutoentry.sh | ||
| pyquake3.py | ||
| rcon-cli | ||