Добавление уведомлений Growl после завершения задач Rake
Есть ли способ добавить уведомления Growl в конце всех задач Rake?
Сначала я думал о создании задачи Growl и добавлении ее в качестве зависимости к задачам, от которых я хочу получать оповещения, но понял, что зависимости запускаются до начала задачи. Есть ли способ добавить задачи для запуска после завершения определенных задач Rake?
Это было бы очень полезно, поэтому мне не нужно сидеть там в ожидании долгих заданий.
** обновление от 17.08.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 [имя].enhance { growl "'Задание #{имя} выполнено (#{Time.now})'"} end
- Спасибо за щелочь - посмотрите его решение для использования ruby-рычание ниже -
2 ответа
Вот как вы можете неявно вызывать рычание для вызывающих задач (верхнего уровня)
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
Драгоценный камень rakegrowl делает это очень просто. Все, что вам нужно сделать, это установить гем rakegrowl и псевдоним rake
в rake -rubygems -r rakegrowl
в вашем.bashrc.