tmuxのステータスラインにMiddlemanの起動状態を表示する

Middleman を使用する際の開発環境は zsh + tmux + Web ブラウザを組み合わせて使用しています。tmux は画面分割をしたり, 複数開いて作業を行ったりとても便利です。tmux の window を複数用意し, その 1 つで middleman server して作業をしています。

複数 window を利用した場合の問題

複数 window のうち 1 つを使って middleman server を実行すると, 実行中なのを忘れたまま Terminal を落としてしまい, Middleman のプロセスが残るということがあります。さらに, プロセスが残ったまま他の Middleman プロジェクトを立ち上げた時に「アッ」となる訳です。

対応: Middleman の起動状態を表示する

そこで tmux のステータスライン上に Middleman の稼動状態を表示するようにしました。

まず, Middleman が稼働しているかどうかの判定は ps aux | grep middleman した際に /bin/middleman が含まれる行があるかどうかにします。次のスクリプトを用意しました。

#!/usr/bin/env ruby 
# coding: utf-8

ps_result = `ps aux | grep middleman`
if /\/bin\/middleman/ =~ ps_result
  print " MM "
end

このスクリプトを ~/.tmux/middleman-status.sh として保存し, 実行権限を付与するため chmod +x ~/.tmux/middleman-status.sh もしておきます。。さらに, ~/.tmux.conf に次のように書きます。

set -g status-right '#[bg=black,fg=red]#($HOME/.tmux/middleman-status.sh)'

こうすることで, Middleman のプロセスが存在する場合, tmux のステータスライン上に次のように「MM」と表示されます。プロセスが存在しない場合には何も起こりません。

middleman-status -2

これで Middleman のプロセス起動忘れも防げるのかなと思います。

コメントを残す

メールアドレスが公開されることはありません。