2014-03-19 50 views
0

争论一个Capistrano的任务,我有一个Capistrano的2任务更新文件调用与其他任务

task :update_file, roles: :app do 
... 
end 

现在我需要写上的所有文件进行文件夹,以便从内部的一些操作的任务在update_folder之内我想打电话update_file传递给它更新的文件的名称,但我很难这样做。

如何设置Capistrano任务来接受参数并从其他任务中调用它?

感谢

回答

0

,你可以这样做:

$gkey="" 
$gvalue="" 


desc "generate config files" 
task :gen_conf_files do 
    $servers.each do |key,value| 
     $MYSQL["mysql"]["passwd"]="#{key.to_s}++" 
     $gkey=key.to_s 
     $gvalue=value.to_s 
     $NODE_NAME="#{key.to_s}" 
     $NODE_NUM=key.to_s[9,10] 



     gen_mfs_conf 
     gen_cfs_conf 
     gen_client_conf 
     gen_config_shell 
     gen_cdn_reacheyes_net 
     gen_click_reacheyes_net 
     gen_log_reacheyes_net 
     gen_fluent_conf 
     gen_nagios_conf 


    end 

    end 

desc "genrate fluent config file" 
task :gen_fluent_conf do 
     file = "#{generate_conf_dir}/#{$gvalue}/fluent.conf" 
     filename ="#{config_file_path}/fluent.conf.sample" 
     erb = ERB.new(File.read(filename)) 
     erb.filename = filename 
     File = File.new("#{file}", "w") 
     File.puts erb.result 


    end 

首先定义一个全局变量 $ g值= “”

那么你可以使用不同的任务

之间的变量