Eris Client
C

Eris Client

CLI на языке C, который обёртывает ваш рабочий процесс с Git в простые команды — управляемые фиксации по стандарту Conventional Commits, фиксация и отправка за один раз, создание ветвей, ребейзинг и макросы проекта, которые можно повторно запускать.

GitHub|

Eris — это командная строка для разработчиков, которая обогащает ваш рабочий процесс с Git за счёт структурированного потока коммитов, локальных для проекта макросов и маршрутизатора команд на основе Prolog, поддерживающего цепочки команд и отрицания.

В повседневной работе вы используете eris вместо стандартного Git.


Что он делает

eris init [name] — создаёт каталог .eris/ в текущей папке, записывает файл макросов и добавляет .eris/ в локальный список исключений git, чтобы он никогда не появлялся в вашем репозитории.

eris commit / eris copush — интерактивная фиксация и отправка в один прием. Предлагает выбрать из меню стандартный тип коммита (feat, fix, refactor и т. д.), затем запрашивает сообщение, форматирует его в виде тип: сообщение, добавляет всё в стадию, выполняет коммит и отправляет в репозиторий. Работает из любой точки проекта.

eris ignore <file> — добавляет файл в .eris/.eris.ignore, чтобы он пропускался при выполнении copush. Действует на уровне проекта, а не глобально.

eris alias add <name> do <cmd> do <cmd> — сохраняет макрос с заданным именем (последовательность команд оболочки) в .eris/.eris.macros.

eris alias run <name> / eris run <name> — запускает сохраненный макрос.

eris rebuild — пересобирает сам бинарник eris с помощью CMake.

eris root — выводит обнаруженный корневой каталог проекта eris.


Цепочка команд

Маршрутизатор команд написан на языке Prolog. Он поддерживает операторы &&, || и not непосредственно в списке аргументов:

eris init myapp && eris commit # выполнить commit только в случае успешной инициализации
eris init || true # игнорировать сбой
eris not init # выполнить, если инициализация завершилась сбоем

Макросы

Макросы хранятся в файле .eris/.eris.macros в корневом каталоге проекта:

[deploy]
make build
git push origin main
ssh prod "systemctl restart app"

Добавляйте с разделителем do (кавычки не требуются):

eris alias add deploy do make build do git push origin main

Добавление с кавычками (для команд, содержащих точку с запятой или синтаксис оболочки):

eris alias add test "npm run lint" "npm test"

Запуск:

eris run deploy

Установка

make install

Это скомпилирует бинарный файл, скопирует его в /usr/local/bin/eris и добавит псевдоним в ваш файл .bashrc или .zshrc (определяется автоматически). Затем:

source ~/.zshrc   # или ~/.bashrc

Зависимости (cmake, gcc, libcurl, libssl и т. д.) проверяются и устанавливаются автоматически во время сборки, если их нет.


Сборка из исходного кода

make # настройка + сборка (отладочный режим)
make CONFIG=Release
make JOBS=8

Требуется: cmake, gcc/g++, libcurl-dev, libssl-dev, pkg-config.
Необязательно: SWI-Prolog (libswipl-dev) для маршрутизатора Prolog — при отсутствии используется маршрутизатор на C.


Документация