vagrantからterminal-notifierに通知飛ばす。
前回guardでいい感じに自動テスト環境セットアップしたけど、あれ?terminal-notifierもvagrantから通知できなくね?ということで、またしてもググってみたところ、おぉ神よ。
vagrant-notify+terminal-notifierでvagrantからローカルに通知をする - Qiita
terminal-notifierは既に入ってる前提なので、なかったらbrewで入れてください。
$ brew install terminal-notifier
これでポップアップが出ればOK。
$ echo 'Piped Message Data!' | terminal-notifier -sound default
次に手元のMac側でvagrant-notifyというvagrantのpluginを入れる。
$ vagrant plugin install vagrant-notify Installing the 'vagrant-notify' plugin. This can take a few minutes... Installed the plugin 'vagrant-notify (0.4.0)'!
vagrantで仮想サーバ起動しっぱなしだったら一回再起動しておく。
$ vagrant halt $ vagrant up
次に、手元のMac側でnotify-sendというコマンドをシェルで作る。
$ vi /usr/local/bin/notify-send $ cat /usr/local/bin/notify-send #!/bin/bash terminal-notifier -title "$2" -message "$3" -sound default $ chmod u+x /usr/local/bin/notify-send
まずは手元のMacで稼働確認。ポップアップ出た。
$ notify-send title message
次にvagrant側から実行していみる。vagrant側のnotify-sendコマンドはCentOS6.5だとデフォで入ってた。
$ ssh xxxx Last login: Tue Feb 17 11:35:36 2015 from 10.0.2.2 [vagrant@localhost ~]$ notify-send title message
次に、先ほどのMac側で作ったシェルを編集して、guardからキックできるようにする。
$ vi /usr/local/bin/notify-send $ cat /usr/local/bin/notify-send #!/bin/bash while getopts t:h:i:u:i:c: OPTION do case $OPTION in t) TIME=$OPTARG;; h) ;; i) IMAGE=$OPTARG;; u) ;; esac done shift `expr $OPTIND - 1` MESSAGE=$* terminal-notifier -title "$1" -message "$MESSAGE" -contentImage "$IMAGE" -sound default