Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

TmuxでGitHubのStatusを確認できるプラグインを作った

f:id:Windymelt:20220404133807p:plain
GitHubのステータスAPIを叩いた情報がTmuxに表示される

たまにGitHub Actionsの様子がおかしいな〜と思ってGitHub Statusを見に行くとトラブルが発生していたりする。こういう情報にすぐ気付きたいな〜と思ったので、Tmuxのステータスバーに勝手にGitHubのステータスが表示されるようなプラグインを書いてみた。

github.com

しくみ

curlGitHubのStatus APIを叩き、その結果をjqでフィルタして表示している。なので最低でもこれら2つのコマンドが必要になっている。

Tmuxプラグインを書くために、tmux-batteryという既存のプラグインを参考にした。

github.com

Tmuxのステータスラインでinterpolateを行う方法はこれを真似したもので、bashを使って素朴に特定の文字列をコマンド呼び出しに置換している。

do_interpolation() {
    local all_interpolated="$1"
    for ((i=0; i<${#gh_commands[@]}; i++)); do
        all_interpolated=${all_interpolated//${gh_interpolation[$i]}/${gh_commands[$i]}}
    done
    echo "$all_interpolated"
}

やっていることは非常に素朴なので、詳細はソースコードを見てほしい。

プラグイン化

なんとTmuxにはtpmというプラグインマネージャが有志の手によって作成されており、これに則ると1行書くだけでプラグインの導入が完了する。

github.com

tpmを導入済みなら、set -g @plugin 'windymelt/tmux-github'という行を追加して、Prefix + Iを押下してTmuxをリフレッシュするだけでこのプラグインが動くようになる。

今後

今のところSeverityなどの表示はやっていないので、それを出したり、色を付けるといった便利な表示を行えるようにするかもしれない。今のところはdescriptionを流すだけで十分。Pull-Request are welcome.

参考

プラグインの作成方法は以下を参考にした。

github.com

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?