2014-03-19 75 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值= 「」

那麼你可以使用不同的任務

之間的變量
相關問題