Eris Client
C

Eris Client

Narzędzie CLI napisane w języku C, które pozwala zarządzać procesem pracy z Git za pomocą prostych poleceń — wspomagane konwencjonalne zatwierdzenia, zatwierdzanie i wysyłanie zmian w jednym kroku, tworzenie gałęzi, rebasing oraz makra projektowe, które można ponownie uruchamiać.

GitHub|

Eris to interfejs CLI dla programistów, który uzupełnia proces pracy z Git o ustrukturyzowany przepływ commitów, makra lokalne dla projektu oraz router poleceń oparty na języku Prolog, obsługujący łańcuchowanie i negację.

W codziennej pracy używasz polecenia eris zamiast surowego Gita.


Jak to działa

eris init [nazwa] — tworzy katalog .eris/ w bieżącym folderze, zapisuje plik makr oraz dodaje katalog .eris/ do lokalnej listy wykluczeń Git, dzięki czemu nigdy nie pojawi się on w repozytorium.

eris commit / eris copush — interaktywne zatwierdzenie i wysłanie w jednym kroku. Wyświetla monit o wybranie konwencjonalnego typu zatwierdzenia (feat, fix, refactor itp.) z menu, a następnie prosi o wpisanie komunikatu, formatuje go jako typ: komunikat, przygotowuje wszystko do zatwierdzenia, zatwierdza i wysyła zmiany. Działa z dowolnego miejsca w obrębie projektu.

eris ignore <plik> — dodaje plik do pliku .eris/.eris.ignore, dzięki czemu jest on pomijany podczas copush. Działa na poziomie projektu, a nie globalnie.

eris alias add <nazwa> do <polecenie> do <polecenie> — zapisuje makro o podanej nazwie (sekwencję poleceń powłoki) w pliku .eris/.eris.macros.

eris alias run <nazwa> / eris run <nazwa> — uruchamia zapisane makro.

eris rebuild — przebudowuje sam plik binarny eris przy użyciu CMake.

eris root — wyświetla wykryty katalog główny projektu eris.


Łańcuchowanie poleceń

Router poleceń jest napisany w języku Prolog. Obsługuje operatory &&, || oraz not bezpośrednio w liście argumentów:

eris init myapp && eris commit # zatwierdź zmiany tylko wtedy, gdy inicjalizacja się powiodła
eris init || true # zignoruj niepowodzenie
eris not init # zakończ z powodzeniem, gdy inicjalizacja się nie powiedzie

Makra

Makra są przechowywane w katalogu .eris/.eris.macros w katalogu głównym projektu:

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

Dodaj z separatorem do (nie trzeba używać cudzysłowów):

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

Dodaj z cudzysłowami (dla poleceń zawierających średniki lub składnię powłoki):

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

Uruchom:

eris run deploy

Instalacja

make install

Spowoduje to skompilowanie pliku binarnego, skopiowanie go do katalogu /usr/local/bin/eris oraz dodanie aliasu do pliku .bashrc lub .zshrc (wykrywanego automatycznie). Następnie:

source ~/.zshrc   # lub ~/.bashrc

Zależności (cmake, gcc, libcurl, libssl itp.) są sprawdzane i instalowane automatycznie podczas kompilacji, jeśli ich brakuje.


Kompilacja ze źródeł

make # konfiguracja + kompilacja (wersja debugowa)
make CONFIG=Release
make JOBS=8

Wymagane: cmake, gcc/g++, libcurl-dev, libssl-dev, pkg-config.
Opcjonalnie: SWI-Prolog (libswipl-dev) dla routera Prolog — w przypadku braku tej biblioteki używany jest router w języku C.


Dokumentacja