Growl for Windows
Grails徹底入門11章の勉強を始めました。
スクリプト関係(Gant)で始まっている章です。その中で、スクリプトのイベントをキャッチする、event()メソッドがありました。event()メソッド自体は、”$GRAILS_HOME/scripts/Init.groovy”で用意されているので、特にどうこうは無いのですが、以下の様に呼び出すことが出来ます。
/------------スクリプト----------- target('default': "The description of the script goes here!") { //開始イベントの呼び出し(init.groovyのevent()メソッドを使う) event("StartStatus",["Script start"]) } /------------Eventスクリプト----------- eventStartStatus = { msg -> println "Script Start:${msg}" }
eventメソッドの第1引数がEventスクリプトのクロージャ名とタイアップされて、第2引数のリストは、クロージャの引数になります。
Eventスクリプトは、”Event.groovy”で、適宜”scripts”のディレクトリに配置します。
それが更に進んで、標準出力ではなく、Antのexecタスクで、Growlを呼び出して、カッチョ良くみせる解説があったので、やってみました。
ただ、職場にいる時は、Windows環境なので、「GrowlみたいなWindowsアプリあるのかなぁ〜?ダサいメッセージングのアプリなら、やらなくてもいいか?」的なノリで、ググったら、一発で「Growl for Windows」って出てきました。何でもやってしまう、凄い人は何処の世界にもいるんですね。Macとは若干オプションの指定が違うみたいですが、基本はほぼ一緒のようです。この辺りが、共通になるか、ラップしてくれる何かがあれば、Mac,Winどちらでもいけそうですね。
Growl対応で以下の様に、Eventスクリプトを変更しました。
eventStartStatus = { msg -> growlNotify("Script Start",msg) } /* Growl処理 */ void growlNotify(title, msg){ // application.propertiesの参照 def metadata = new Properties() def metadataFile = new FileInputStream("${basedir}/application.properties") metadata.load(metadataFile) def projectName = metadata["app.name"] def grailsVersion= metadata["app.grails.version"] //アイコン def icon = "${basedir}/web-app/images/grails-128x128icon.png" Ant.exec(executable:"C:/Program Files/Growl for Windows/growlnotify.exe"){ arg(value:"/a:Grails") arg(value:"/i:${icon}") arg(value:"/r:${projectName}") arg(value:"/n:${projectName}") arg(value:"/t:${title}") arg(value:msg) } }
各環境にGrowlを入れなきゃいけないのは、たまに傷ですけど、カッコイイデスネ。