apeiron
Утилита для управления модпаками
Основные термины
- Модпак — совокупность файлов, которые могут быть доставлены пользователю, сразу или после сборки
- SourceManifest (SM) — виртуальный объект исходников модпака,
описанный в
index.yamlи представленный файлами вobjects/ - TargetManifest (TM) — виртуальный объект индекса и целевых файлов модпака, доставляемых пользователю
Принцип работы
Apeiron оперирует реконструированными из файлов виртуальными объектами
модпаков, предоставленными SM и/или TM. Никакого другого хранилища
метаданных, кроме самих файлов, нет.
Все изменения в виртуальных объектах (например, создание TM из SM,
так называемый процесс сборки модпака) немедленно отображается в ФС.
Обратное тоже верно — любые изменения в файлах будут отображены
утилитой apeiron
Статусы модпака
- Fresh — исходники модпака (
SM) в точности равны собранным файлам (TM) - Outdated —
TMне соответствуетSM, обычно, если файлы исходников обновились - Not deployed — для
SMв модпаке пока не был собранTM - Orphaned — существует только
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
# Внутреннее версионирование, всегда 2
minimumVersion: 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:
# Внутреннее имя DLC
name: MoreBells
# Описание DLC
description: 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.yaml
modpack_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 и выше
History
1.0.0 (2020-06-25)
- First production-ready release
0.9.0 (2018-09-01)
- First release on PyPI.
Release files for apeiron 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apeiron-1.1.0.tar.gz | 18.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| apeiron-1.1.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 35.3 kB
Release files / apeiron-1.1.0.tar.gz
| Download URL | apeiron-1.1.0.tar.gz |
|---|---|
| Size | 18.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e371d842e543e66386252bc3da05d386e3f4983b26e881cd79ab6e58db1fdec4
|
|
BLAKE2b-256 checksum How to use checksums |
727efb1025503884673f87c480e1ab97ef2b686520313224c216d2418b12a7b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2
|
Release files / apeiron-1.1.0-py2.py3-none-any.whl
| Download URL | apeiron-1.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 16.8 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
f1bc26e32b43b2fb3221c17e2612b0cf807d663c1877f5f8e47f43b3f6819c25
|
|
BLAKE2b-256 checksum How to use checksums |
d14b75aae94cff4cca09d18bc935d5b72417567c51e4dc5bace37f1024016e3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2
|