Als versie 2 van Capistrano je eerste ontmoeting is, maak dan gebruik van de nieuwe namespace mogelijkheid. Een namespace geeft de mogelijkheid om je tasks te groeperen. En dat is heel handig. Zeker als het aantal tasks aanzienlijk is.
Als we vanuit onze project map het volgende doen:
cap -T
dan krijgen we al onze capistrano tasks te zien. Maar in capistrano 1 stonden die allemaal hotseflots door elkaar heen, en zocht je je soms te pletter als de task met een bepaalde naam begon. Niet meer !
namespace :station do
desc 'Uitrollen App'
task :uitrollen do
# ...
end
desc 'Start Nginx Web Server'
task :start_nginx, :roles => 'web' do
sudo "nginx -c /usr/local/nginx/conf/nginx.conf"
end
end
Als ik nu cap -T intik dan krijg ik netjes al me tasks te zien die horen bij me namespace.
...
cap deploy:check
cap deploy:cleanup
...
cap station:uitrollen
cap station:start_nginx
En met cap -T | grep station is het nog duidelijker. Als ik een task in een namespace wil gebruiken in een ander script dan kan dat heel simpel met:
station.uitrollen of station.start_nginx
En het is uiteraard mogelijk om meerder namespaces aan te maken.