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.
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| apeiron-1.1.0.tar.gz | 18.5 kB | Without provenance | Details for apeiron-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| apeiron-1.1.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details for apeiron-1.1.0-py2.py3-none-any.whl |
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
|
Security for apeiron 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.