Eris Client
Una CLI basata su C che racchiude il tuo flusso di lavoro git in comandi semplici. Aggiunge modelli di commit, commit e push in un colpo solo, branching, rebasing, attività e cose da fare, e macro di progetto riproducibili.
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 un nome (sequenza di comandi della 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 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
Questo compila il binario e crea un collegamento simbolico in ~/.local/bin/eris (è possibile sovrascrivere il percorso con LINK_DIR=...), in modo che eris funzioni immediatamente senza bisogno di sudo. Per un'installazione a livello di sistema:
sudo make install
Questo compila il binario, lo installa (insieme ai file del router Prolog) in /usr/local/lib/eris/ e crea un collegamento simbolico da /usr/local/bin/eris a tale directory. Non è necessario alcun alias della shell purché /usr/local/bin sia presente nel PATH. Per installare senza privilegi di root, utilizzare un prefisso utente:
make install PREFIX=$HOME/.local # il binario viene salvato in ~/.local/bin
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 C.
