Eris Client
Une CLI en C qui encapsule votre flux de travail git dans des commandes simples. Ajoute des modèles de commit, commit et push en une seule fois, la gestion des branches, le rebasage, des tâches et des to-do, ainsi que des macros de projet rejouables.
Eris est une interface en ligne de commande (CLI) pour développeurs qui encapsule votre workflow Git avec un flux de commits structuré, des macros spécifiques au projet et un routeur de commandes basé sur Prolog prenant en charge le chaînage et la négation.
Vous utilisez eris à la place de Git brut pour votre travail quotidien.
Fonctionnalités
eris init [nom] — crée un répertoire .eris/ dans le dossier actuel, génère le fichier de macros et ajoute .eris/ à la liste d’exclusion locale de Git afin qu’il n’apparaisse jamais dans votre dépôt.
eris commit / eris copush — commit interactif + push en une seule opération. Vous invite à choisir un type de commit conventionnel (feat, fix, refactor, etc.) dans un menu, puis vous demande un message, le formate sous la forme type: message, met tout en attente, effectue le commit et le push. Fonctionne depuis n'importe où dans le projet.
eris ignore <fichier> — ajoute un fichier à .eris/.eris.ignore afin qu’il soit ignoré lors du copush. Par projet, pas globalement.
eris alias add <nom> do <commande> do <commande> — enregistre une macro nommée (séquence de commandes shell) dans .eris/.eris.macros.
eris alias run <nom> / eris run <nom> — exécute une macro enregistrée.
eris rebuild — recompile le binaire eris lui-même à l’aide de CMake.
eris root — affiche la racine du projet eris détectée.
Enchaînement de commandes
Le routeur de commandes est écrit en Prolog. Il prend en charge les opérateurs &&, || et not directement dans la liste d'arguments :
eris init myapp && eris commit # valider uniquement si l’initialisation a réussi
eris init || true # ignorer l’échec
eris not init # réussir lorsque l’initialisation échoue
Macros
Les macros sont stockées dans .eris/.eris.macros à la racine du projet :
[deploy]
make build
git push origin main
ssh prod "systemctl restart app"
Ajouter avec le séparateur do (pas besoin de guillemets) :
eris alias add deploy do make build do git push origin main
Ajouter avec des guillemets (pour les commandes contenant des points-virgules ou de la syntaxe shell) :
eris alias add test "npm run lint" "npm test"
Exécuter :
eris run deploy
Installation
make
Cela compile le binaire et crée un lien symbolique vers ~/.local/bin/eris (à remplacer par LINK_DIR=...), ce qui permet à eris de fonctionner immédiatement sans sudo. Pour une installation à l'échelle du système, utilisez plutôt :
sudo make install
Cela compile le binaire, l’installe (ainsi que ses fichiers de routeur Prolog) dans /usr/local/lib/eris/, et crée un lien symbolique depuis /usr/local/bin/eris vers ce répertoire. Aucun alias de shell n’est nécessaire tant que /usr/local/bin figure dans votre PATH. Pour installer sans droits root, utilisez un préfixe utilisateur :
make install PREFIX=$HOME/.local # le binaire est placé dans ~/.local/bin
Les dépendances (cmake, gcc, libcurl, libssl, etc.) sont vérifiées et installées automatiquement lors de la compilation si elles manquent.
Compilation à partir du code source
make # configuration + compilation (débogage)
make CONFIG=Release
make JOBS=8
Prérequis : cmake, gcc/g++, libcurl-dev, libssl-dev, pkg-config.
Facultatif : SWI-Prolog (libswipl-dev) pour le routeur Prolog — si absent, le système utilise par défaut un routeur C.
