読者です 読者をやめる 読者になる 読者になる

【NYAGOS】Nyagosのプロンプトにgitの現在のbranch名を表示する

前書き

「ちょっと作業するかー→コミットするかー→ここ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コマンドを叩くので若干重くなったりするのが難点です。

参考