Eris Client
C

Eris Client

git 워크플로를 간단한 명령으로 감싸는 C 기반 CLI입니다. 커밋 템플릿, 한 번에 커밋 및 푸시, 브랜칭, 리베이싱, 작업 및 할 일, 재생 가능한 프로젝트 매크로를 추가합니다.

GitHub문서|

Eris는 구조화된 커밋 흐름, 프로젝트 전용 매크로, 그리고 연쇄 호출과 부정 연산을 지원하는 Prolog 기반 명령어 라우터를 통해 Git 워크플로를 감싸주는 개발자용 CLI입니다.

일상적인 작업 시에는 일반 Git 대신 eris를 실행합니다.


기능

eris init [이름] — 현재 폴더에 .eris/ 디렉터리를 생성하고, 매크로 파일을 작성하며, .eris/를 Git의 로컬 제외 목록에 추가하여 저장소에 절대 표시되지 않도록 합니다.

eris commit / eris copush — 대화형 커밋과 푸시를 한 번에 수행합니다. 메뉴에서 일반적인 커밋 유형(feat, fix, refactor 등)을 선택하도록 안내한 후, 메시지를 입력받습니다. 입력된 메시지를 유형: 메시지 형식으로 포맷하고, 모든 항목을 스테이징한 뒤 커밋 및 푸시를 수행합니다. 프로젝트 내 어디서나 사용할 수 있습니다.

eris ignore <파일> — 파일을 .eris/.eris.ignore에 추가하여 copush 시 해당 파일이 처리되지 않도록 합니다. 전역 설정이 아닌 프로젝트별 설정입니다.

eris alias add <name> do <cmd> do <cmd> — 이름이 지정된 매크로(쉘 명령어 시퀀스)를 .eris/.eris.macros에 저장합니다.

eris alias run <이름> / eris run <이름> — 저장된 매크로를 실행합니다.

eris rebuild — CMake를 사용하여 eris 바이너리 자체를 재빌드합니다.

eris root — 감지된 eris 프로젝트 루트 디렉터리를 출력합니다.


명령어 연쇄

명령어 라우터는 Prolog로 작성되었습니다. 인자 목록에서 &&, ||, not을 직접 지원합니다:

eris init myapp && eris commit # 초기화가 성공한 경우에만 커밋
eris init || true # 실패 무시
eris not init # 초기화가 실패했을 때 성공

매크로

매크로는 프로젝트 루트 디렉터리의 .eris/.eris.macros에 저장됩니다:

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

do 구분자를 사용하여 추가 (따옴표는 필요 없음):

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

따옴표와 함께 추가 (세미콜론이나 셸 구문이 포함된 명령어의 경우):

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

실행:

eris run deploy

설치

make

이렇게 하면 바이너리가 빌드되고 ~/.local/bin/eris에 심볼릭 링크가 생성됩니다(LINK_DIR=...로 재정의 가능). 따라서 eris는 sudo 없이도 즉시 작동합니다. 시스템 전체에 설치하려면 다음을 실행하세요:

sudo make install

이렇게 하면 바이너리가 빌드되고, /usr/local/lib/eris/에 설치되며(Prolog 라우터 파일 포함), /usr/local/bin/eris가 해당 경로로 심볼릭 링크됩니다. /usr/local/bin이 PATH에 포함되어 있다면 쉘 별칭을 설정할 필요가 없습니다. 루트 권한 없이 설치하려면 사용자 접두사를 사용하세요:

make install PREFIX=$HOME/.local   # 바이너리가 ~/.local/bin에 설치됨

의존성(cmake, gcc, libcurl, libssl 등)은 빌드 중에 자동으로 확인되며, 누락된 경우 자동으로 설치됩니다.


소스 코드로부터 빌드

make # configure + 빌드 (디버그)
make CONFIG=Release
make JOBS=8

필수: cmake, gcc/g++, libcurl-dev, libssl-dev, pkg-config.
선택 사항: Prolog 라우터를 위한 SWI-Prolog (libswipl-dev) — 설치되어 있지 않으면 C 라우터로 대체됩니다.


문서