【NYAGOS】Nyagos のプロンプトに git の現在の branch 名を表示する
2018/12/01 追記
- シンタックスハイライトを適用しました。
前書き
「ちょっと作業するかー → コミットするかー → ここmaster
だ!あびゃー!」って言うことがよくあります。
病院に行くお金と時間がないので、Nyagos のプロンプトに現在の branch 名を表示するようにしました。
しくみ
git で現在の branch 名を取得するにはgit rev-parse
に--abbrev-ref
オプションを渡すのが一番簡単です。
nyagos.eval
に上記コマンドを渡せば OK です。当然 git で管理されていないフォルダだと怒られるので、エラー出力は捨てます。具体的にはこんな感じ。
local git_branch_name = nyagos.eval('git rev-parse --abbrev-ref HEAD 2>nul') if (git_branch_name ~= '') then -- TODO: プロンプトにgit_branch_nameを表示する end
実例
デフォルトの.nyagos
でやるとしたら、こんな感じになります。
nyagos.env.prompt='$L'.. nyagos.getenv('COMPUTERNAME') .. ':$P$G' share.org_prompter=nyagos.prompt nyagos.prompt = function(this) local prompt_message = this -- プロンプトにgit_branch_nameを表示する local git_branch_name = nyagos.eval('git rev-parse --abbrev-ref HEAD 2>nul') if (git_branch_name ~= '') then -- もちろんgit_branch_nameに適当な色をつけたりしてもOK prompt_message = prompt_message .. ' [' .. git_branch_name .. ']' end -- ここで改行をくっつける prompt_massage = prompt_message .. '$_$$$s' return share.org_prompter('$e[36;40;1m'..prompt_message..'$e[37;1m') end
まとめ
同じ要領で色んなバージョン管理システムのアレができるんですが、git 以外は特に使ってないのでこれで十分です。
毎回 git コマンドを叩くので若干重くなったりするのが難点です。