Eris Client
C

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.

GitHubDocumentación|

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.


Documentación