Eris Client
CLI на языке C, который обёртывает ваш рабочий процесс с Git в простые команды — управляемые фиксации по стандарту Conventional Commits, фиксация и отправка за один раз, создание ветвей, ребейзинг и макросы проекта, которые можно повторно запускать.
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.
