【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 コマンドを叩くので若干重くなったりするのが難点です。

参考