Package: apeiron
apeironУтилита для управления модпакамиОсновные терминыМодпак— совокупность файлов, которые могут быть доставлены
пользователю, сразу или после сборкиSourceManifest (SM)— виртуальный объект исходников модпака,
описанный вindex.yamlи представленный файлами вobjects/TargetManifest (TM)— виртуальный объект индекса и целевых
файлов модпака, доставляемых пользователюПринцип работыApeiron оперирует реконструированными из файлов виртуальными объектами
модпаков, предоставленнымиSMи/илиTM. Никакого другого хранилища
метаданных, кроме самих файлов, нет.Все изменения в виртуальных объектах (например, созданиеTMизSM,
так называемый процесс сборки модпака) немедленно отображается в ФС.
Обратное тоже верно — любые изменения в файлах будут отображены
утилитойapeironСтатусы модпакаFresh— исходники модпака (SM) в точности равны собранным
файлам (TM)Outdated—TMне соответствуетSM, обычно, если файлы
исходников обновилисьNot deployed— дляSMв модпаке пока не был собранTMOrphaned— существует толькоTMв модпаке, без исходниковBroken— нарушена целостностьTM, следует пересобрать или
удалить такой модпакUnknown— эфемерный модпак, запись в котором найдена в
индексе, стоит удалить егоРабота сapeironДля просмотра помощи по командам достаточно вызвать утилиту без
аргументов,apeironПолный пример индекса исходников с комментариями# Отображаемое имя модпака в лаунчереtitle:Fancy pack with bells and whistles# Внутреннее имя, используется в дальнейших операциях с модпакомname:my_pack# Версия игрыgameVersion:1.10.2# Список дополнительных флагов запуска, пустой по умолчаниюlaunch:flags:--XX:SomeStrangeJavaFlag=42---debug# Внутреннее версионирование, всегда 2minimumVersion:2# URL к дополнительным библиотекам для этого модпака# Добавляется к адресу по умолчанию в лаунчереlibrariesLocation:http://libraries.devd.io# Фактическое размещение файлов модпака, относительно индексаobjectsLocation:objects# Папки из objectsLocation, которые нужно упаковать в zip-архив# перед сборкой модпакаbundles:# всё содержимое указанной папки и всех подпапок с сохранением структуры# будет находиться в resourcepacks/UnpackedResourcePack.zip-resourcepacks/UnpackedResourcePack# Список пользовательских файлов и каталогов, которые при установке# модпака доставляются на клиент, но не перезаписываются при обновленииuserFiles:include:-options.txt-config/MyAwesomeModStuff/*# Список дополнительно загружаемых частей (DLC) модпакаfeatures:# Объект DLC-properties:# Внутреннее имя DLCname:MoreBells# Описание DLCdescription:Adds extra bells!# Рекомендован (starred) или нет (avoid) для загрузкиrecommendation:starred# Игнорируется, так как активно только на стороне клиентаselected:false# Список файлов, входящих в DLСfiles:include:-mods/MoreBells.jar-mods/MoreBellsAddons*# Аналогично общему блоку userFiles# файлы доставляются на клиент при отсутствии, но не перезаписываются при обновлении# Данный блок необязателен и может отсутствовать,# если в данном DLC нет пользовательских файловuserFiles:include:-config/MoreBells.cfgВсе пути на стороне утилиты должны рассматриваться относительно каталогаobjects, или же каталога игры на стороне клиента.КонфигурацияВсе настройкиapeironзадаются переменными окружения.APEIRON_SOURCES_DIR(~/apeiron/sources) — Исходные файлыAPEIRON_PACKAGES_DIR(~/apeiron/packages) — Собранные модпакиAPEIRON_MODPACK_INDEX(index.json) — Рабочий индекс модпаковAPEIRON_PARALLELISM(4) — Количество рабочих процессовAPEIRON_DEBUG(False) — Включена ли отладка?Работа с несколькими версиями окруженийПри необходимости разделить окружения (production/test) можно
использовать несколько индексов модпаков. Так, при вызовеapeiron --config production.yamlи содержимомproduction.yamlmodpack_index:production.json...все клиенты, для которыхpackageListUrlлаунчера будет указывать наproduction.json, будут видеть только включенные там сборки.Настройка веб-сервераДостаточно любого сервера, способного отдавать файлы сstorage_dir/packagesПример дляnginx, еслиstorage_dirнастроена в/opt/apeiron:server {
    listen        80;
    server_name   packages.example.com;
    root          /opt/apeiron/packages;
}Установкаpip3 install apeironСистемные требованияPOSIX-совместимая ОСPython 3.6.4 и вышеHistory1.0.0 (2020-06-25)First production-ready release0.9.0 (2018-09-01)First release on PyPI.