2010-11-26 28 views
1

我想在部署完成後刪除遠程計算機上的某些文件夾。我目前使用Capistrano:在遠程部署後有條件地運行命令

task :set_permissions do 

    parallel do |session| 
    session.when "in?(:xb_test)", "cat #{deploy_to}test.htaccess >> #{current_path}/.htaccess" 
    end 

兩個問題真的,這是做到這一點的最好辦法,我怎麼可以運行這樣的多種功能語句而無需編寫代碼的重複?

session.when "in?(:xb_test)" ... 
session.when "in?(:xb_dev)" ... 
session.when "in?(:xb_live)" ... 

,因爲我是很新,Capistrano的

回答

1
  • 關於你的第一個問題的任何幫助將不勝感激,「這是爲了做到這一點,最好的方法是什麼?」 :

    我不認爲這是最好的辦法。 「測試」,「開發」和「生活」呃... ...它看起來像要部署到不同的階段,那麼我會更好地利用https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

  • 關於你的第二個問題,「我怎麼能運行這種說法在多種功能,而無需編寫代碼重複「:

    Capistrano的deploy.rb僅僅是一個Ruby文件,你可以使用的方法

 
    def htaccess_stuff 
     "cat #{deploy_to}test.htaccess >> #{current_path}/.htaccess" 
    end 

然後

 
task :set_permissions do 

    parallel do |session| 
    session.when "in?(:xb_test)", htaccess_stuff 
    end 

+0

太好了,非常感謝。我會看看多級擴展。 – igniteflow 2010-11-28 18:33:28