Eris Client
Una interfaz de línea de comandos (CLI) basada en C que integra tu flujo de trabajo de Git en comandos sencillos: commits convencionales guiados, commit y push en un solo paso, creación de ramas, rebasado y macros de proyecto reproducibles.
Eris es una interfaz de línea de comandos (CLI) para desarrolladores que integra tu flujo de trabajo de Git con un flujo de confirmaciones estructurado, macros específicas del proyecto y un enrutador de comandos basado en Prolog que admite encadenamiento y negación.
Utilizas eris en lugar de Git sin modificaciones para el trabajo diario.
Qué hace
eris init [nombre]: crea un directorio .eris/ en la carpeta actual, genera el archivo de macros y añade .eris/ a la lista de exclusiones locales de Git para que nunca aparezca en tu repositorio.
eris commit / eris copush: commit interactivo y push de una sola vez. Te pide que elijas un tipo de commit convencional (feat, fix, refactor, etc.) de un menú; a continuación, te solicita un mensaje, lo formatea como tipo: mensaje, prepara todo para el commit, realiza el commit y envía los cambios. Funciona desde cualquier lugar dentro del proyecto.
eris ignore <archivo> — añade un archivo a .eris/.eris.ignore para que se omita durante el copush. Es específico de cada proyecto, no global.
eris alias add <nombre> do <comando> do <comando> — guarda una macro con nombre (secuencia de comandos de shell) en .eris/.eris.macros.
eris alias run <nombre> / eris run <nombre> — ejecuta una macro guardada.
eris rebuild — recompila el propio binario de eris utilizando CMake.
eris root — muestra la raíz del proyecto eris detectada.
Encadenamiento de comandos
El enrutador de comandos está escrito en Prolog. Admite &&, || y not directamente en la lista de argumentos:
eris init myapp && eris commit # realiza el commit solo si la inicialización ha tenido éxito
eris init || true # ignora el fallo
eris not init # se ejecuta con éxito cuando la inicialización falla
Macros
Las macros se almacenan en .eris/.eris.macros en la raíz del proyecto:
[deploy]
make build
git push origin main
ssh prod "systemctl restart app"
Añadir con el separador do (no es necesario entre comillas):
eris alias add deploy do make build do git push origin main
Añadir entre comillas (para comandos que contengan punto y coma o sintaxis de shell):
eris alias add test "npm run lint" "npm test"
Ejecutar:
eris run deploy
Instalación
make install
Esto compila el binario, lo copia a /usr/local/bin/eris y añade un alias a tu .bashrc o .zshrc (se detecta automáticamente). A continuación:
source ~/.zshrc # o ~/.bashrc
Las dependencias (cmake, gcc, libcurl, libssl, etc.) se comprueban e instalan automáticamente durante la compilación si faltan.
Compilar desde el código fuente
make # configuración + compilación (Debug)
make CONFIG=Release
make JOBS=8
Requisitos: cmake, gcc/g++, libcurl-dev, libssl-dev, pkg-config.
Opcional: SWI-Prolog (libswipl-dev) para el enrutador Prolog; si no está presente, se recurre a un enrutador en C.
