Добавление уведомлений Growl после завершения задач Rake - PullRequest
2 голосов
/ 14 августа 2010

Есть ли способ добавить уведомления Growl в конец всех задач Rake?

Сначала я думал о создании задачи Growl и добавлении ее в качестве зависимости к задачам, от которых я хочу получать оповещения, но понял, что зависимости запускаются до начала задачи. Есть ли способ добавить задачи для запуска после завершения определенных задач Rake?

Это было бы очень полезно, поэтому мне не нужно сидеть и ждать долгих заданий.

** обновление 8/17/2010 **

Вот решение для этого с growlnotify ... поместите это в свой Rakefile:

def growl(message)
  growlnotify = `which growlnotify`.chomp
  system %(#{growlnotify} -sm #{message})
end

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

- Кредит на щелочь - смотрите его решение для использования ruby-рычание ниже -

Ответы [ 2 ]

2 голосов
/ 14 августа 2010

Вот как вы можете неявно вызывать рычание для вызывающих (верхнего уровня) задач

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
0 голосов
/ 15 марта 2011

Камень rakegrowl делает это очень просто. Все, что вам нужно сделать, это установить гем rakegrowl и псевдоним от rake до rake -rubygems -r rakegrowl в.

...