Eris Client
C

Eris Client

Un'interfaccia a riga di comando (CLI) basata su C che semplifica il flusso di lavoro Git in comandi intuitivi: commit convenzionali guidati, commit e push in un unico passaggio, creazione di rami, rebase e macro di progetto riutilizzabili.

GitHub|

Eris è una CLI per sviluppatori che integra il flusso di lavoro git con un flusso di commit strutturato, macro specifiche per il progetto e un router di comandi basato su Prolog che supporta il concatenamento e la negazione.

Si utilizza eris al posto di git "puro" per il lavoro quotidiano.


Cosa fa

eris init [nome] — crea una directory .eris/ nella cartella corrente, scrive il file delle macro e aggiunge .eris/ alle esclusioni locali di Git in modo che non compaia mai nel tuo repository.

eris commit / eris copush — commit interattivo + push in un’unica operazione. Chiede di selezionare un tipo di commit convenzionale (feat, fix, refactor, ecc.) da un menu, quindi richiede un messaggio, lo formatta come tipo: messaggio, prepara tutto per il commit, esegue il commit e il push. Funziona da qualsiasi punto all’interno del progetto.

eris ignore <file> — aggiunge un file a .eris/.eris.ignore in modo che venga ignorato durante il copush. Impostazione specifica per progetto, non globale.

eris alias add <nome> do <comando> do <comando> — salva una macro con nome (sequenza di comandi shell) in .eris/.eris.macros.

eris alias run <nome> / eris run <nome> — esegue una macro salvata.

eris rebuild — ricompila il binario eris stesso utilizzando CMake.

eris root — visualizza la radice del progetto eris rilevata.


Concatenazione dei comandi

Il router dei comandi è scritto in Prolog. Supporta &&, || e not direttamente nell’elenco degli argomenti:

eris init myapp && eris commit # esegue il commit solo se l’inizializzazione ha avuto esito positivo
eris init || true # ignora l’errore
eris not init # ha esito positivo quando l’inizializzazione fallisce

Macro

Le macro sono memorizzate in .eris/.eris.macros nella radice del progetto:

[deploy]
make build
git push origin main
ssh prod "systemctl restart app"

Aggiungere con il separatore do (non è necessario l’uso delle virgolette):

eris alias add deploy do make build do git push origin main

Aggiungere con le virgolette (per comandi che contengono punti e virgola o sintassi della shell):

eris alias add test "npm run lint" "npm test"

Esecuzione:

eris run deploy

Installazione

make install

Questo comando compila il binario, lo copia in /usr/local/bin/eris e aggiunge un alias al tuo file .bashrc o .zshrc (rilevato automaticamente). Quindi:

source ~/.zshrc   # oppure ~/.bashrc

Le dipendenze (cmake, gcc, libcurl, libssl, ecc.) vengono verificate e installate automaticamente durante la compilazione, se mancanti.


Compilazione dal codice sorgente

make # configurazione + compilazione (Debug)
make CONFIG=Release
make JOBS=8

Requisiti: cmake, gcc/g++, libcurl-dev, libssl-dev, pkg-config.
Opzionale: SWI-Prolog (libswipl-dev) per il router Prolog — se non presente, si ricorre a un router in C.


Documentazione