Eris Client
C

Eris Client

Eine CLI auf C-Basis, die deinen Git-Workflow in einfache Befehle verpackt. Fügt Commit-Vorlagen, Ein-Schritt-Commit und -Push, Branching, Rebasing, Aufgaben und To-dos sowie wiederholbare Projektmakros hinzu.

GitHubDokumentation|

Eris ist eine CLI für Entwickler, die Ihren Git-Workflow mit einem strukturierten Commit-Ablauf, projektlokalen Makros und einem Prolog-basierten Befehlsrouter umgibt, der Verkettung und Negation unterstützt.

Sie verwenden eris anstelle von reinem Git für Ihre tägliche Arbeit.


Funktionsweise

eris init [name] – richtet im aktuellen Ordner ein Verzeichnis .eris/ ein, schreibt die Makrodatei und fügt .eris/ zu den lokalen Ausschlusslisten von Git hinzu, sodass es niemals in Ihrem Repo erscheint.

eris commit / eris copush – Interaktiver Commit und Push in einem Schritt. Fordert dich auf, einen konventionellen Commit-Typ (feat, fix, refactor usw.) aus einem Menü auszuwählen, fragt dann nach einer Nachricht, formatiert diese als Typ: Nachricht, stellt alles bereit, führt den Commit durch und führt den Push aus. Funktioniert von überall innerhalb des Projekts.

eris ignore <Datei> — Fügt eine Datei zu .eris/.eris.ignore hinzu, sodass sie bei copush übersprungen wird. Gilt projektbezogen, nicht global.

eris alias add <name> do <cmd> do <cmd> — Speichert ein benanntes Makro (eine Abfolge von Shell-Befehlen) in .eris/.eris.macros.

eris alias run <name> / eris run <name> — führt ein gespeichertes Makro aus.

eris rebuild — erstellt die eris-Binärdatei selbst mit CMake neu.

eris root — gibt das erkannte Stammverzeichnis des eris-Projekts aus.


Befehlsketten

Der Befehlsrouter ist in Prolog geschrieben. Er unterstützt &&, || und not direkt in der Argumentliste:

eris init myapp && eris commit # Commit nur, wenn die Initialisierung erfolgreich war
eris init || true # Fehler ignorieren
eris not init # Erfolgreich, wenn die Initialisierung fehlschlägt

Makros

Makros werden im Verzeichnis .eris/.eris.macros im Projektstammverzeichnis gespeichert:

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

Mit dem Trennzeichen do hinzufügen (keine Anführungszeichen erforderlich):

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

Mit Anführungszeichen hinzufügen (für Befehle, die Semikolons oder Shell-Syntax enthalten):

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

Ausführen:

eris run deploy

Installieren

make

Dadurch wird die Binärdatei erstellt und als Symlink in ~/.local/bin/eris verknüpft (mit LINK_DIR=... überschreibbar), sodass eris sofort ohne sudo funktioniert. Für eine systemweite Installation stattdessen:

sudo make install

Dadurch wird die Binärdatei erstellt, zusammen mit den dazugehörigen Prolog-Router-Dateien unter /usr/local/lib/eris/ installiert und ein symbolischer Link von /usr/local/bin/eris dorthin erstellt. Es ist kein Shell-Alias erforderlich, solange /usr/local/bin in Ihrem PATH enthalten ist. Um die Installation ohne Root-Rechte durchzuführen, verwenden Sie ein Benutzerpräfix:

make install PREFIX=$HOME/.local   # Die Binärdatei wird in ~/.local/bin abgelegt

Abhängigkeiten (cmake, gcc, libcurl, libssl usw.) werden während des Kompiliervorgangs automatisch überprüft und bei Fehlen installiert.


Kompilieren aus dem Quellcode

make # Konfigurieren + Kompilieren (Debug)
make CONFIG=Release
make JOBS=8

Voraussetzungen: cmake, gcc/g++, libcurl-dev, libssl-dev, pkg-config.
Optional: SWI-Prolog (libswipl-dev) für den Prolog-Router – falls nicht vorhanden, wird auf einen C-Router zurückgegriffen.


Dokumentation