テクニカルプア

備忘録と若干の補足

コマンドの終了をYoで知らせるシェルスクリプト書いた

2014-09-27 追記

デスクトップ環境の機能を利用してYoしたことを通知する機能をつけた。Xが起動してない場合は標準出力へ通知内容と同様の文言を表示する。変更点は一目瞭然なので注釈は省略。つかうアイコン画像にYoっぽい感じのものを選ぶと通知がおしゃれになって嬉しくなる。

Yo*1について




本題

前フリ

 mozcやLinuxカーネルといった長大なプログラムのコンパイルをルーチンワークとしている人々にとって、それらをコンパイルしている間に何をすべきかというのが問題になることが多いと思う。
 長大なプログラムのコンパイル時にはコンピュータのリソースがコンパイルに持っていかれてしまってパフォーマンスが急激に低下するためにコンピュータを使う作業が捗らなくなる。非コンピュータな作業をすれば解決するのだけど、コンパイルがいつ終わるのか気になってどうしようもなくなってしまう私のようなせっかちな人間は、コンパイルが終わるまで標準出力とかに吐き出される進捗をずっと見続けてしまい、結果時間を浪費することになってしまう。
 ところで、Yoはただ単純にYoと飛ばし飛ばされるだけの単純明快なコミュニケーションツールである。コミュニケーション上ではYo以外の冗長な情報は必要とされない。となれば、前述したコンパイルやあるいはその他のコンピュータ上で行われる長大な作業の終了を通知するのに、Yoは最適なツールなのではなかろうか。かつてはメールで通知されたものはYoという現代的なツールに置き換わるのだ。

本題

 Yo API*2を使用して、コマンドの終了を所望のYoユーザへYoして知らせるシェルスクリプトを書いた。

 使用するのに必要なものは以下の通り。

  • Yoのアカウント(通知を受ける)
  • YoのAPIトークン(Yoするのに必要。http://yoapi.justyo.co/ から取得できる)

 APIトークンの取得方法はブログにYoボタンを設置した | SOTAをみるとよい。APIトークンを取得したら、上述したスクリプト内の'<YOUR_API_TOKEN>'を取得したAPIトークンで、'<DESIRED_USERNAME>'をYoしたいユーザ名で書き換えればよい。これで、API登録時に指定したYoユーザから、DESIRED_USERNAMEを置き換えたYoユーザへYoが飛んでくる。

凡例
$ yotify <command> <options>

 別にyotifyじゃなくてもよい。前述のシェルスクリプトを適当な名前で保存して実行権限を与え、パスが通ってるディレクトリへ配置すれば使用できるようになる。
 これでコンピュータに長大な作業させている間も進捗を気にして画面を注視する必要がなくなり、Yoを待つだけになる。有意義な時間が増える。