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.
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.
