Eris Client
Oparte na C CLI, które opakowuje Twój przepływ pracy git w proste polecenia. Dodaje szablony commitów, jednorazowy commit i push, rozgałęzianie, rebasing, zadania i listy zadań do zrobienia oraz odtwarzalne makra projektowe.
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 .eris/ do lokalnej listy wykluczeń Git, dzięki czemu nigdy nie pojawi się on w repozytorium.
eris commit / eris copush — interaktywne zatwierdzanie i wysył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 przesyła. Działa z dowolnego miejsca w projekcie.
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ń
Moduł routingu 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
Spowoduje to skompilowanie pliku binarnego i utworzenie dowiązania symbolicznego w katalogu ~/.local/bin/eris (można to zmienić za pomocą LINK_DIR=...), dzięki czemu eris działa od razu bez potrzeby używania sudo. Aby zainstalować program w całym systemie, należy zamiast tego wykonać:
sudo make install
Spowoduje to skompilowanie pliku binarnego, zainstalowanie go (wraz z plikami routera Prolog) w katalogu /usr/local/lib/eris/ oraz utworzenie dowiązania symbolicznego /usr/local/bin/eris do tego katalogu. Nie jest potrzebny żaden alias powłoki, o ile katalog /usr/local/bin znajduje się w zmiennej PATH. Aby zainstalować bez uprawnień roota, użyj prefiksu użytkownika:
make install PREFIX=$HOME/.local # plik binarny zostanie umieszczony w ~/.local/bin
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 zostanie użyty router w języku C.
