Eris Client
CLI на языке C, который обёртывает ваш рабочий процесс с Git в простые команды — управляемые фиксации по стандарту Conventional Commits, фиксация и отправка за один раз, создание ветвей, ребейзинг и макросы проекта, которые можно повторно запускать.
Eris — это CLI-инструмент для разработчика, который оборачивает ваш git-воркфлоу структурированным процессом коммитов, макросами на уровне проекта и маршрутизатором команд на основе Prolog, поддерживающим цепочки и отрицание.
Вы используете eris вместо обычного git для повседневной работы.
Что он делает
eris init [name] — создаёт директорию .eris/ в текущей папке, записывает файл макросов и добавляет .eris/ в локальный git exclude, чтобы он никогда не появлялся в вашем репозитории.
eris commit / eris copush — интерактивный коммит + пуш за один раз. Предлагает выбрать тип conventional commit (feat, fix, refactor и т.д.) из меню, затем запрашивает сообщение, форматирует его как type: message, индексирует всё, коммитит и пушит. Работает из любого места внутри проекта.
eris ignore <file> — добавляет файл в .eris/.eris.ignore, чтобы он пропускался при copush. На уровне проекта, не глобально.
eris alias add <name> do <cmd> do <cmd> — сохраняет именованный макрос (последовательность shell-команд) в .eris/.eris.macros.
eris alias run <name> / eris run <name> — запускает сохранённый макрос.
eris rebuild — пересобирает сам бинарник eris с помощью CMake.
eris root — выводит обнаруженный корень проекта eris.
Цепочки команд
Маршрутизатор команд написан на Prolog. Он поддерживает &&, || и not непосредственно в списке аргументов:
eris init myapp && eris commit # коммит только если init успешен
eris init || true # игнорировать ошибку
eris not init # успех при неудаче 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
Добавление с кавычками (для команд, содержащих точки с запятой или shell-синтаксис):
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 # настройка + сборка (Debug)
make CONFIG=Release
make JOBS=8
Требуется: cmake, gcc/g++, libcurl-dev, libssl-dev, pkg-config.
Опционально: SWI-Prolog (libswipl-dev) для Prolog-маршрутизатора — если отсутствует, используется C-маршрутизатор.
