仕込み
.zshrc や .bashrc などに以下のように仕込みを入れる(例は ninja に仕込み):
function ninja()
{
env ninja $@
R=$?
echo -e '\a'
return R
}
これで ninja hoge などすると結果の成否によらず"ベル"が鳴り、ビルド処理が終わった通知を簡単に受けられます。
解説
- シェルに関数 ninja を定義するとパスのコマンドよりも優先される
-
ninja $@はシェル関数に渡されたコマンドライン引数をそのままninjaに渡している -
ninjaだけシェル関数内に書いたら再帰するのでenv ninjaしている-
envの代わりに/usr/bin/ninjaなどしてもよい
-
-
R=@?で直前のコマンドの実行結果を変数Rとして保存しておく -
echo -e '\a'で "ベル" が鳴る(端末エミュレーターが対応していれば)- もちろん
ogg123 notify.ogg&でもaplay notify.wav&でも構わない、対応できるなら
- もちろん
-
return Rで本来のninjaの結果を関数の結果として返す- これをやらないと
echo -e '\a'やogg123 notify.ogg&の成否が直前のコマンドの結果として返る事になり、ninja hoge && bin/hogeなどが狂う事になる
- これをやらないと
だそく
- 各種 linux 環境のほか、 msys2 + mingw-w64 の mintty でもこの方法で"ベル"を鳴らせる
- ビルド開始から結果がでるまで時間が数十秒以上かかるプロジェクトを扱う場合におすすめのらいふはっく
- もっと長くかかるプロジェクトの場合は"ベル"よりもある程度の長さの音楽やメール送信を噛ませてスマフォのバイブレーターで受けるとか応用するといいと思います