Eris Client
Git 워크플로를 간단한 명령어로 묶어주는 C 기반 CLI — 가이드 방식의 표준 커밋, 한 번에 커밋 및 푸시, 브랜치 생성, 리베이싱, 그리고 재실행 가능한 프로젝트 매크로 기능을 제공합니다.
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 install
이렇게 하면 바이너리가 빌드되고, /usr/local/bin/eris에 복사되며, .bashrc 또는 .zshrc(자동으로 감지됨)에 별칭이 추가됩니다. 그런 다음:
source ~/.zshrc # 또는 ~/.bashrc
의존성(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 라우터로 대체됩니다.
