fs pack: копировать gameinfo.txt — маркер установки
Some checks are pending
CI / checks (push) Waiting to run

tier::paths::detect признаёт корень ассетов по garrysmod_dir.vpk или
garrysmod/gameinfo.txt. В минимальном наборе нет ни VPK, ни gameinfo, поэтому
клиент с --assets <pack> отвечал «ассеты Garry's Mod не найдены», хотя все
файлы на месте. Теперь fs pack пишет gameinfo.txt из VFS, и распакованный
APK-набор загружается без полной установки.
This commit is contained in:
Niko Marmeladkov 2026-10-23 17:08:15 +03:00
parent 075fed97d5
commit 0428b3654b

View file

@ -67,6 +67,15 @@ pub fn pack(assets: Option<PathBuf>, map: &str, out: &Path) -> anyhow::Result<()
std::fs::write(&map_dest, &map_bytes)?;
total += map_bytes.len();
// Маркер установки: `tier::paths::detect` узнаёт корень по gameinfo.txt
// (или dir-VPK). Без него клиент с `--assets <pack>` отвечает «не найдены».
if let Ok(info) = vfs.read("gameinfo.txt") {
std::fs::write(root.join("gameinfo.txt"), &info)?;
total += info.len();
} else {
tracing::warn!("gameinfo.txt не найден в VFS — маркер установки не записан");
}
tracing::info!(
files = paths.len() + 1,
bytes = total,