Eris Client
Una CLI basada en C que envuelve tu flujo de trabajo de git en comandos simples. Añade plantillas de commit, commit y push en un solo paso, ramificación, rebase, tareas y pendientes, 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 modificar 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 se ha realizado con é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
Esto compila el binario y crea un enlace simbólico en ~/.local/bin/eris (se puede anular con LINK_DIR=...), por lo que eris funciona inmediatamente sin necesidad de sudo. Para una instalación en todo el sistema, haz lo siguiente:
sudo make install
Esto compila el binario, lo instala (junto con sus archivos de enrutador de Prolog) en /usr/local/lib/eris/ y crea un enlace simbólico desde /usr/local/bin/eris hacia esa ruta. No se necesita ningún alias de shell siempre que /usr/local/bin esté en tu PATH. Para instalar sin privilegios de root, utiliza un prefijo de usuario:
make install PREFIX=$HOME/.local # el binario se guarda en ~/.local/bin
Las dependencias (cmake, gcc, libcurl, libssl, etc.) se comprueban y se instalan automáticamente durante la compilación si faltan.
Compilación a partir del 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 utiliza un enrutador en C.
