Eris Client
gitワークフローをシンプルなコマンドで包み込むCベースのCLI。コミットテンプレート、ワンショットのコミットとプッシュ、ブランチ作成、リベース、タスクとToDo、再生可能なプロジェクトマクロを追加します。
Eris は、構造化されたコミットフロー、プロジェクト固有のマクロ、および連鎖や否定をサポートする Prolog ベースのコマンドルーターによって、Git ワークフローをラップする開発者向け CLI です。
日常の作業では、生の Git の代わりに eris を実行します。
機能の概要
eris init [name] — 現在のフォルダに .eris/ ディレクトリを作成し、マクロファイルを生成します。また、.eris/ を Git のローカル除外リストに追加するため、リポジトリには決して表示されません。
eris commit / eris copush — 対話型のコミットとプッシュを一度に実行します。 メニューから標準的なコミットタイプ(feat、fix、refactor など)を選択するよう促し、次にメッセージを入力するよう求め、それを type: message の形式でフォーマットし、すべてをステージングして、コミットおよびプッシュを行います。プロジェクト内のどこからでも実行可能です。
eris ignore <file> — ファイルを .eris/.eris.ignore に追加し、copush 時にスキップされるようにします。プロジェクト単位の設定であり、グローバル設定ではありません。
eris alias add <name> do <cmd> do <cmd> — 名前付きマクロ(シェルコマンドのシーケンス)を .eris/.eris.macros に保存します。
eris alias run <name> / eris run <name> — 保存されたマクロを実行します。
eris rebuild — CMake を使用して eris バイナリ自体を再構築します。
eris root — 検出された eris プロジェクトのルートを表示します。
コマンドの連鎖
コマンドルーターは Prolog で記述されています。引数リスト内で &&、||、および not を直接サポートしています:
eris init myapp && eris commit # initが成功した場合のみコミット
eris init || true # 失敗を無視
eris not init # 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 に含まれている限り、シェルエイリアスは必要ありません。root 権限なしでインストールするには、ユーザープレフィックスを使用します:
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ルーターにフォールバックします。
