lib/ash/drupal.rb in capistrano-ash-0.0.19 vs lib/ash/drupal.rb in capistrano-ash-1.0.0
- old
+ new
@@ -5,117 +5,121 @@
Capistrano::Configuration.instance(:must_exist) :
Capistrano.configuration(:must_exist)
configuration.load do
-# --------------------------------------------
-# Setting defaults
-# --------------------------------------------
-proc{_cset( :multisites, {"default" => "#{application}"} )}
-set :drush_bin, "drush"
+ # --------------------------------------------
+ # Setting defaults
+ # --------------------------------------------
+ proc{_cset( :multisites, {"default" => "#{application}"} )}
+ set :drush_bin, "drush"
-# --------------------------------------------
-# Calling our Methods
-# --------------------------------------------
-after "deploy:setup", "deploy:setup_shared"
-after "deploy:finalize_update", "ash:fixperms"
-after "ash:fixperms", "drupal:protect"
-after "deploy:symlink", "drupal:symlink"
-after "deploy", "drupal:clearcache"
-after "deploy", "deploy:cleanup"
+ # --------------------------------------------
+ # Calling our Methods
+ # --------------------------------------------
+ after "deploy:setup", "deploy:setup_shared"
+ after "deploy:finalize_update", "ash:fixperms"
+ after "ash:fixperms", "drupal:protect"
+ after "deploy:symlink", "drupal:symlink"
+ after "deploy", "drupal:clearcache"
+ after "deploy", "drupal:htaccess"
+ after "deploy", "deploy:cleanup"
-# --------------------------------------------
-# Overloaded Methods
-# --------------------------------------------
-namespace :deploy do
+ # --------------------------------------------
+ # Overloaded Methods
+ # --------------------------------------------
+ namespace :deploy do
desc "Setup shared application directories and permissions after initial setup"
task :setup_shared, :roles => :web do
- # remove Capistrano specific directories
- run "rm -Rf #{shared_path}/log"
- run "rm -Rf #{shared_path}/pids"
- run "rm -Rf #{shared_path}/system"
+ # remove Capistrano specific directories
+ run "rm -Rf #{shared_path}/log"
+ run "rm -Rf #{shared_path}/pids"
+ run "rm -Rf #{shared_path}/system"
- # create shared directories
- multisites.each_pair do |folder, url|
- run "mkdir -p #{shared_path}/#{url}/files"
- end
+ # create shared directories
+ multisites.each_pair do |folder, url|
+ run "mkdir -p #{shared_path}/#{url}/files"
+ end
- # set correct permissions
- run "chmod -R 777 #{shared_path}/*"
+ # set correct permissions
+ run "chmod -R 777 #{shared_path}/*"
end
desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
task :finalize_update, :except => { :no_release => true } do
- # remove shared directories
- multisites.each_pair do |folder, url|
- run "mv #{latest_release}/sites/#{folder} #{latest_release}/sites/#{url}"
- run "rm -Rf #{latest_release}/sites/#{url}/files"
- end
+ # remove shared directories
+ multisites.each_pair do |folder, url|
+ run "mv #{latest_release}/sites/#{folder} #{latest_release}/sites/#{url}"
+ run "rm -Rf #{latest_release}/sites/#{url}/files"
+ end
end
namespace :web do
- desc "Disable the application and show a message screen"
- task :disable do
- multisites.each_pair do |folder, url|
- run "#{drush_bin} -l #{url} -r #{latest_release} vset --yes site_offline 1"
- end
+ desc "Disable the application and show a message screen"
+ task :disable do
+ multisites.each_pair do |folder, url|
+ run "#{drush_bin} -l #{url} -r #{latest_release} vset --yes site_offline 1"
end
+ end
- desc "Enable the application and remove the message screen"
- task :enable do
- multisites.each_pair do |folder, url|
- run "#{drush_bin} -l #{url} -r #{latest_release} vdel --yes site_offline"
- end
+ desc "Enable the application and remove the message screen"
+ task :enable do
+ multisites.each_pair do |folder, url|
+ run "#{drush_bin} -l #{url} -r #{latest_release} vdel --yes site_offline"
end
+ end
end
-end
+ end
-namespace :backup do
- desc "Perform a backup of database files"
- task :db, :roles => :db do
- puts "Backing up the database now and putting dump file in the previous release directory"
- multisites.each_pair do |folder, url|
- # define the filename (include the current_path so the dump file will be within the dirrectory)
- filename = "#{current_path}/#{folder}_dump-#{Time.now.to_s.gsub(/ /, "_")}.sql.gz"
- # dump the database for the proper environment
- run "#{drush_bin} -l #{url} -r #{current_path} sql-dump | gzip -c --best > #{filename}"
+ namespace :backup do
+ desc "Perform a backup of database files"
+ task :db, :roles => :db do
+ puts "Backing up the database now and putting dump file in the previous release directory"
+ multisites.each_pair do |folder, url|
+ # define the filename (include the current_path so the dump file will be within the dirrectory)
+ filename = "#{current_path}/#{folder}_dump-#{Time.now.to_s.gsub(/ /, "_")}.sql.gz"
+ # dump the database for the proper environment
+ run "#{drush_bin} -l #{url} -r #{current_path} sql-dump | gzip -c --best > #{filename}"
+ end
end
end
-end
-# --------------------------------------------
-# Drupal-specific methods
-# --------------------------------------------
-namespace :drupal do
+ # --------------------------------------------
+ # Drupal-specific methods
+ # --------------------------------------------
+ namespace :drupal do
desc "Symlink shared directories"
task :symlink, :except => { :no_release => true } do
- multisites.each_pair do |folder, url|
- run "ln -nfs #{shared_path}/#{url}/files #{current_release}/sites/#{url}/files"
- run "ln -nfs #{latest_release}/sites/#{url}/settings.php.#{stage} #{latest_release}/sites/#{url}/settings.php"
- run "#{drush_bin} -l #{url} -r #{current_path} vset --yes file_directory_path sites/#{url}/files"
- end
+ multisites.each_pair do |folder, url|
+ run "ln -nfs #{shared_path}/#{url}/files #{current_release}/sites/#{url}/files"
+ run "ln -nfs #{latest_release}/sites/#{url}/settings.php.#{stage} #{latest_release}/sites/#{url}/settings.php"
+ run "#{drush_bin} -l #{url} -r #{current_path} vset --yes file_directory_path sites/#{url}/files"
+ end
end
desc "Replace local database paths with remote paths"
task :updatedb, :except => { :no_release => true } do
- multisites.each_pair do |folder, url|
- run "#{drush_bin} -l #{url} -r #{current_path} sqlq \"UPDATE {files} SET filepath = REPLACE(filepath,'sites/#{folder}/files','sites/#{url}/files');\""
- end
+ multisites.each_pair do |folder, url|
+ run "#{drush_bin} -l #{url} -r #{current_path} sqlq \"UPDATE {files} SET filepath = REPLACE(filepath,'sites/#{folder}/files','sites/#{url}/files');\""
+ end
end
desc "Clear all Drupal cache"
task :clearcache, :except => { :no_release => true } do
- multisites.each_pair do |folder, url|
- run "#{drush_bin} -l #{url} -r #{current_path} cache-clear all"
- end
+ multisites.each_pair do |folder, url|
+ run "#{drush_bin} -l #{url} -r #{current_path} cache-clear all"
+ end
end
-
+
desc "Protect system files"
task :protect, :except => { :no_release => true } do
- multisites.each_pair do |folder, url|
- run "chmod 644 #{latest_release}/sites/#{url}/settings.php*"
- end
+ multisites.each_pair do |folder, url|
+ run "chmod 644 #{latest_release}/sites/#{url}/settings.php*"
+ end
end
-
-end
-
+
+ desc 'Copy over htaccess file'
+ task :htaccess do
+ run "cp #{latest_release}/htaccess.dist #{latest_release}/.htaccess"
+ end
+ end
end