2010-11-26 3 views
1

Je souhaite supprimer certains dossiers de la télécommande une fois le déploiement terminé. J'utilise actuellementCapistrano: exécution conditionnelle des commandes après le déploiement sur la télécommande

task :set_permissions do 

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

Deux questions vraiment, est-ce la meilleure façon de le faire et comment puis-je utiliser ce genre de déclaration sur les fonctions sans avoir à écrire du code de répétition?

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

Toute aide serait appréciée comme je suis assez nouveau pour Capistrano

Répondre

1
  • À propos de votre première question, « est-ce la meilleure façon de le faire? » :

    Je ne pense pas que ce soit la meilleure approche. « test » « dev » et « vivre » Uhm ... il semble que vous déployez à différentes étapes, alors je mieux utiliser https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

  • A propos de votre deuxième question, « comment puis-je utiliser ce genre de déclaration sur de multiples fonctions sans avoir à écrire du code de répétition ":

    Capistrano deploy.rb est juste un fichier rubis, vous pouvez utiliser une méthode

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

puis

 
task :set_permissions do 

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

+0

Super, merci beaucoup. Je vais jeter un oeil à l'extension à plusieurs étages. – igniteflow

Questions connexes