Eris Client
CLI на основе C, который оборачивает ваш git-процесс в простые команды. Добавляет шаблоны коммитов, коммит и push одним действием, ветвление, rebase, задачи и to-do, а также воспроизводимые макросы проекта.
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
Это скомпилирует бинарный файл и создаст символьную ссылку на него в ~/.local/bin/eris (можно переопределить с помощью LINK_DIR=...), благодаря чему eris будет работать сразу без sudo. Для установки на уровне всей системы выполните:
sudo make install
Это скомпилирует бинарный файл, установит его (вместе с файлами маршрутизатора Prolog) в /usr/local/lib/eris/ и создаст символьную ссылку /usr/local/bin/eris на него. Алиас в оболочке не требуется, если /usr/local/bin находится в вашем PATH. Для установки без прав root используйте префикс пользователя:
make install PREFIX=$HOME/.local # бинарный файл будет размещён в ~/.local/bin
Зависимости (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.
