2009-08-19 35 views
2

所有命名空间的任务我有不同的任务命名空间:运行与Capistrano的

namespace :mytest do 
    task :setup do; ... end; 
    task :task1 do; ... end; 
    task :task2 do; ... end; 
end

当我运行帽mytest的我得到任务'备份”不存在

如何创建一个调用所有任务的命令?

回答

3
task :default do 
    setup 
    task1 
    task2 
end
0

在一个项目中,我发现自己经常需要调用给定名称空间中的所有任务。这是Namespace类的简单猴子补丁,它将添加run_all_tasks方法。该方法采用可选的except数组,该数组应该是要排除的任务名称列表(作为符号)。

module Capistrano 
    class Configuration 
    module Namespaces 
     class Namespace 

     def run_all_tasks(except = []) 
      except << :all 

      self.task_list(false).each do |task| 
      task.body.call unless except.include?(task.name) 
      end 
     end 

     end 
    end 
    end 
end 

该方法将按照它们定义的顺序运行任务。与任何类型的猴子补丁\ hack一样,请谨慎使用此方法!