3.1 KiB
Реорганизация 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):
# Создать каталог в контейнере и залить файлы
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 — их можно проставить вручную и перезапустить):
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:
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. Варианты:
- Переименовать папку в common/ так, чтобы оно было ближе к названию в JSON, и снова запустить dry-run.
- Добавить вручную маппинг: можно расширить
resolve_steam_appid.py(словарь папка → appid) или положить рядом с папкой файл с appid и доработать скрипт — при необходимости можно добавить такой режим.
Манифесты
Скрипт ищет appmanifest_<AppID>.acf в корне common/ или на уровень выше (steamapps/). Если манифеста нет, игра попадёт в блок «Нет файла appmanifest»; манифест нужно будет добавить вручную (скачать или создать).