Simple CLI for modpack management


Keywords
Minecraft, modpack, python, python-3-6, skcraft-launcher
License
MIT
Install
pip install apeiron==1.1.0

Documentation

apeiron

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° для управлСния ΠΌΠΎΠ΄ΠΏΠ°ΠΊΠ°ΠΌΠΈ

https://coveralls.io/repos/github/Orhideous/apeiron/badge.svg?branch=master

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹

  • Модпак β€” ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ доставлСны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, сразу ΠΈΠ»ΠΈ послС сборки
  • 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
# Бписок ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ установкС
# ΠΌΠΎΠ΄ΠΏΠ°ΠΊΠ° Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ
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*
        - config/MoreBells.cfg

ВсС ΠΏΡƒΡ‚ΠΈ Π½Π° сторонС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° objects, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ³Ρ€Ρ‹ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ

Для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ apeiron ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ конфигурируСтся Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ:

  • /etc/config/apeiron.yaml
  • ~/.config/apeiron.yaml Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, конфигурация, пСрСданная Ρ‡Π΅Ρ€Π΅Π· --config, обновляСт ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ значСния. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с нСсколькими окруТСниями, см. Π½ΠΈΠΆΠ΅.
ΠšΠ»ΡŽΡ‡ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ОписаниС
storage_dir ~/apeiron/storage Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
modpack_index index.json Π Π°Π±ΠΎΡ‡ΠΈΠΉ индСкс ΠΌΠΎΠ΄ΠΏΠ°ΠΊΠΎΠ²
parallelism 12 ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов

Π Π°Π±ΠΎΡ‚Π° с нСсколькими вСрсиями ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ

ΠŸΡ€ΠΈ нСобходимости Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ окруТСния (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.1 ΠΈ Π²Ρ‹ΡˆΠ΅

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.