Files
homelab-docs/homelab/scripts/README-reorganize-games-common.md
2026-02-23 16:47:17 +03:00

48 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Реорганизация common/ (HDD 4 TB)
Скрипт приводит папки игр в каталоге **common/** к виду: `GameName/GameName/` (файлы внутри) и кладёт `appmanifest_<AppID>.acf` в корень папки игры. AppId берётся из **steam_library_with_sizes.json** по имени папки (сопоставление по нормализованному имени, не 100% точное).
## Что нужно
- В CT 101 должны быть: `reorganize-games-common.sh`, `resolve_steam_appid.py`, `steam_library_with_sizes.json` (например в `/opt/scripts/`).
- Корневая директория: `/mnt/nextcloud-extra/common/` (или путь 1-м аргументом).
## Подготовка (один раз)
С хоста Proxmox (из репозитория plantUML):
```bash
# Создать каталог в контейнере и залить файлы
pct exec 101 -- mkdir -p /opt/scripts
pct push 101 homelab/scripts/reorganize-games-common.sh /opt/scripts/
pct push 101 homelab/scripts/resolve_steam_appid.py /opt/scripts/
pct push 101 homelab/scripts/steam_library_with_sizes.json /opt/scripts/
```
## Dry-run (ничего не меняет)
Показывает, что будет сделано, и в конце выводит **папки без совпадений** (по ним appId не найден в JSON — их можно проставить вручную и перезапустить):
```bash
ssh root@192.168.1.150 'pct exec 101 -- bash /opt/scripts/reorganize-games-common.sh /mnt/nextcloud-extra/common 1 /opt/scripts/resolve_steam_appid.py /opt/scripts/steam_library_with_sizes.json'
```
## Реальное выполнение
Второй аргумент `0`:
```bash
ssh root@192.168.1.150 'pct exec 101 -- bash /opt/scripts/reorganize-games-common.sh /mnt/nextcloud-extra/common 0 /opt/scripts/resolve_steam_appid.py /opt/scripts/steam_library_with_sizes.json'
```
## Папки без совпадений
Если в конце dry-run в блоке **«Папки, для которых не найден appId»** что-то есть — имена папок не совпали ни с одной записью в `steam_library_with_sizes.json`. Варианты:
1. Переименовать папку в common/ так, чтобы оно было ближе к названию в JSON, и снова запустить dry-run.
2. Добавить вручную маппинг: можно расширить `resolve_steam_appid.py` (словарь папка → appid) или положить рядом с папкой файл с appid и доработать скрипт — при необходимости можно добавить такой режим.
## Манифесты
Скрипт ищет `appmanifest_<AppID>.acf` в корне common/ или на уровень выше (steamapps/). Если манифеста нет, игра попадёт в блок **«Нет файла appmanifest»**; манифест нужно будет добавить вручную (скачать или создать).