2010-11-26 70 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