2

すべての Rake タスクの最後に Growl 通知を追加する方法はありますか?

私は当初、Growls のタスクを作成し、それをアラートが必要なタスクへの依存関係として追加することを考えていましたが、タスクが開始される前に依存関係が実行されることに気付きました。特定の Rake タスクが終了した後に実行するタスクを追加する方法はありますか?

長い作業を待つ必要がなくなるので、とても便利です。

** 2010 年 8 月 17 日更新**

これは growlnotify でそれを行うための解決策です...これをRakefileに入れます:

デフうなり声(メッセージ)
  growlnotify = `どの growlnotify`.chomp
  システム %(#{grownotify} -sm #{メッセージ})
終わり

task_names = Rake.application.top_level_tasks
task_names.each do |名前|
  Rake.application[name].enhance { growl "'Task #{name} completed (#{Time.now})'" }
終わり

-- Alkaline の功績 - 以下の ruby​​-growl を使用するための彼のソリューションを参照してください --

4

2 に答える 2

2

呼び出し元(トップレベル)のタスクに対してgrowlアクションを暗黙的に呼び出す方法は次のとおりです。

require 'rake'
require 'ruby-growl'

task :task1 do puts "Doing task 1"; sleep 1; end
task :task2 do puts "Doing task 2"; sleep 1; end
task :default => [:task1, :task2]

# Add a growl action to all top level tasks
task_names = Rake.application.top_level_tasks
task_names.each do |name|
  Rake.application[name].enhance {growl(name)}
end

def growl(name)
  g = Growl.new "localhost", "ruby-growl", ["ruby-growl Notification"]
  g.notify "ruby-growl Notification", "My Project", "Task #{name} completed"
end
于 2010-08-14T07:12:59.437 に答える
0

gem rakegrowlはこれを非常に簡単に行います。rakegrowl gem とエイリアスrakerake -rubygems -r rakegrowl.bashrc にインストールするだけです。

于 2011-03-14T21:10:46.900 に答える