Eris Client
C

Eris Client

一个基于 C 的命令行界面,用简单的命令封装你的 git 工作流。添加提交模板、一次性提交并推送、分支、变基、任务和待办事项,以及可重放的项目宏。

GitHub文档|

Eris 是一款开发者命令行工具,它通过结构化的提交流程、项目级宏以及一个支持命令链式调用和否定运算的 Prolog 驱动命令路由器,对您的 Git 工作流进行封装。

在日常工作中,您可以使用 eris 代替直接使用 Git 命令。


功能介绍

eris init [name] — 在当前目录下创建 .eris/ 目录,生成宏文件,并将 .eris/ 添加到 Git 的本地排除列表中,确保其永远不会出现在您的代码库中。

eris commit / eris copush — 一键完成交互式提交和推送。 会提示你从菜单中选择一种常规的提交类型(feat、fix、refactor 等),然后要求输入提交信息,将其格式化为 type: message,将所有内容暂存、提交并推送。在项目内的任何位置均可使用。

eris ignore <文件> — 将文件添加到 .eris/.eris.ignore 中,使其在 copush 过程中被跳过。此设置仅针对当前项目,而非全局生效。

eris alias add <name> do <cmd> do <cmd> — 将一个命名的宏(一组 shell 命令)保存到 .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

使用引号添加(适用于包含分号或 shell 语法的命令):

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

运行:

eris run deploy

安装

make

这将构建二进制文件并将其作为符号链接添加到 ~/.local/bin/eris(可通过 LINK_DIR=... 覆盖),因此 eris 无需 sudo 即可立即运行。若要进行系统范围的安装,请执行:

sudo make install

这将构建二进制文件,将其(及其 Prolog 路由器文件)安装到 /usr/local/lib/eris/,并创建 /usr/local/bin/eris 指向该目录的符号链接。只要 /usr/local/bin 在您的 PATH 环境变量中,就无需设置 shell 别名。若要以非 root 用户身份安装,请使用用户前缀:

make install PREFIX=$HOME/.local   # 二进制文件将安装在 ~/.local/bin

若缺少依赖项(如 cmake、gcc、libcurl、libssl 等),系统会在构建过程中自动检查并安装。


从源代码编译

make # 配置 + 编译(调试版)
make CONFIG=Release
make JOBS=8

要求:cmake、gcc/g++、libcurl-dev、libssl-dev、pkg-config。
可选:用于 Prolog 路由器的 SWI-Prolog(libswipl-dev)——若未安装,将回退到 C 语言路由器。


文档