Пакетный менеджер для CC:Tweaked 1.21.1
проверка сервера…

Что это

Установка, обновление, удаление и публикация Lua-пакетов для компьютеров CC:Tweaked прямо из игры. Все версии пакетов хранятся на этом сервере в виде сжатых .hpk-архивов.

Возможности: версии и диапазоны, автообновление при импорте, зависимости, публикация из игры, поиск по реестру, аккаунты со своими токенами.

Установка в игре

На компьютере CC:Tweaked выполните:

wget run http://АДРЕС:8080/client/installer.lua http://АДРЕС:8080

Если HTTP запрещён — разрешите домен в computercraft-server.toml (секция [http], параметр rules).

Команды

Версии

Версию указывают после @: holi install mypkg@1.2.3. Без версии ставится самая свежая. Точная версия закрепляет пакет (без автообновления), диапазон — обновляется внутри границ.

УказаниеПодходят версии
1.2.3только 1.2.3
latestлюбая, самая новая
1.x / 1.2.xмажор 1 / мажор 1 + минор 2
>=1.0 / <2.0не ниже 1.0 / строго ниже 2.0
~1.2 / ~1.2.3только патчи минора 1.2
^1.2.3миноры и патчи 1.x (от 1.2.3)

Публикация

  1. holi init . mypkg и отредактируйте holi.json (name, version, description, main, deps)
  2. holi config set token <токен из профиля>
  3. holi publish . — новая версия: holi publish . @1.0.1

Зависимости перечисляются в deps в holi.json и подтягиваются автоматически и рекурсивно. Пакеты видны в реестре, ваши — в профиле.

В своих программах

local holi = dofile("/holi_api.lua")
local mylib = holi.import("mylib")   -- автообновление при импорте

Или через require:

local holi = dofile("/holi_api.lua")
holi.installRequireHook()
local mylib = require("mylib")       -- автоустановка + автообновление

HTTP API

МетодПутьОписание
GET/api/pingстатус сервера
GET/api/packagesсписок всех пакетов
GET/api/packages/<имя>информация + версии
GET/api/packages/<имя>/<вер>скачать архив
POST/api/packages/<имя>/<вер>загрузить версию (токен)
POST/api/packages/<имя>/<вер>/deleteудалить версию (токен)
POST/api/packages/<имя>/deleteудалить пакет (токен)
GET/api/search?q=…поиск
POST/api/accounts/registerрегистрация аккаунта
POST/api/accounts/loginвход, возвращает токен
GET/api/meсвой профиль и пакеты (токен)
GET/api/users/<имя>публичный профиль пользователя
GET/client/*.luaфайлы клиента для установки

Авторизация: Authorization: Bearer <токен>. Токен даёт права только на свои пакеты.