capistrano-ash 1.1.8 → 1.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.textile CHANGED
@@ -24,6 +24,13 @@ h2. Deploying Magento
24
24
 
25
25
  Check the "Wiki":https://github.com/augustash/capistrano-ash/wiki for detailed installation instructions.
26
26
 
27
+ h2. Deploying WordPress
28
+
29
+ Check the "Wiki":https://github.com/augustash/capistrano-ash/wiki for detailed installation instructions.
30
+
31
+ "WordPress on shared hosting":https://github.com/augustash/capistrano-ash/wiki/WordPress-Shared-Hosting-Example
32
+ "WordPress on virtual or dedicated servers":https://github.com/augustash/capistrano-ash/wiki/WordPress-Private-Server-Example
33
+
27
34
  h2. Deploying Drupal example
28
35
 
29
36
  The capistrano/ash/drupal library takes a hash of Drupal multisites in the following format.
@@ -236,94 +243,3 @@ h3. config/deploy/production.rb
236
243
  </code>
237
244
  </pre>
238
245
 
239
- h2. WordPress example
240
-
241
- h3. Capfile
242
-
243
- <pre>
244
- <code>
245
- # Capfile
246
- load 'deploy' if respond_to?(:namespace) # cap2 differentiator
247
-
248
- # --------------------------------------------
249
- # :application HAS TO BE DEFINED BEFORE
250
- # REQUIRING 'ash/wordpress' LIBRARY
251
- # --------------------------------------------
252
- set :application, "WP_EXAMPLE.com"
253
-
254
- # --------------------------------------------
255
- # Define required Gems/libraries
256
- # --------------------------------------------
257
- require 'ash/wordpress'
258
-
259
- # --------------------------------------------
260
- # Setting defaults
261
- # --------------------------------------------
262
- # IP-address or host's servername
263
- role :app, "wpexample.com"
264
- role :web, "wpexample.com"
265
- role :db, "wpexample.com", :primary => true
266
-
267
- # VCS information.
268
- set :repository, "https://svn.example.com/REPO/trunk"
269
- set :scm_username, "SVN_USER"
270
- set :scm_password, proc{Capistrano::CLI.password_prompt("Subversion password for '#{scm_username}':")}
271
-
272
- # SSH login credentials
273
- set :user, "SSH_USER"
274
- set :password, proc{Capistrano::CLI.password_prompt("SSH password for '#{user}':")}
275
-
276
- # Deploy to file path
277
- set(:deploy_to) { "/home/CLIENT_CODE/#{application}/#{stage}" }
278
-
279
- # Database credentials
280
- set :dbuser, "DB_USER"
281
-
282
- # Set Excluded directories/files (relative to the application's root path)
283
- set(:backup_exclude) { [ "wp-content/cache" ] }
284
-
285
- # --------------------------------------------
286
- # Application Specific Methods
287
- # --------------------------------------------
288
- namespace :app do
289
- desc "Removes any additional unnecessary files or directories after deploy:finalize_update"
290
- task :finalize_update, :except => { :no_release => true } do
291
- logger.debug "Removing additional files"
292
- run "rm -Rf #{latest_release}/htaccess.dist"
293
- end
294
- end
295
-
296
- # --------------------------------------------
297
- # Callbacks
298
- # --------------------------------------------
299
- before "deploy:update_code", "deploy:setup_backup"
300
- after "deploy:setup_backup", "backup"
301
- after "deploy:finalize_update", "app:finalize_update"
302
- </code>
303
- </pre>
304
-
305
- h3. config/deploy/staging.rb
306
-
307
- <pre>
308
- <code>
309
- # config/deploy/staging.rb
310
- # Database Name
311
- set :dbname, "DB_NAME"
312
-
313
- # Backups Path (/home/CLIENT_CODE/#{application}/staging/backups)
314
- set :backups_path, "#{deploy_to}/backups"
315
- </code>
316
- </pre>
317
-
318
- h3. config/deploy/production.rb
319
-
320
- <pre>
321
- <code>
322
- # config/deploy/production.rb
323
- # Database Name
324
- set :dbname, "DB_NAME"
325
-
326
- # Backups Path (/home/CLIENT_CODE/#{application}/production/backups)
327
- set :backups_path, "#{deploy_to}/backups"
328
- </code>
329
- </pre>
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.8
1
+ 1.1.10
data/lib/ash/base.rb CHANGED
@@ -90,7 +90,7 @@ configuration.load do
90
90
  # --------------------------------------------
91
91
  namespace :ash do
92
92
  desc "Set standard permissions for Ash servers"
93
- task :fixperms, :except => { :no_release => true } do
93
+ task :fixperms, :roles => :web, :except => { :no_release => true } do
94
94
  # chmod the files and directories.
95
95
  try_sudo "find #{latest_release} -type d -exec chmod 755 {} \\;"
96
96
  try_sudo "find #{latest_release} -type f -exec chmod 644 {} \\;"
@@ -107,7 +107,7 @@ configuration.load do
107
107
  end
108
108
 
109
109
  desc 'Copy distribution htaccess file'
110
- task :htaccess do
110
+ task :htaccess, :roles => :web do
111
111
  run "mv #{latest_release}/htaccess.dist #{latest_release}/.htaccess" if
112
112
  remote_file_exists?("#{latest_release}/htaccess.dist")
113
113
  end
@@ -119,12 +119,12 @@ configuration.load do
119
119
  namespace :php do
120
120
  namespace :apc do
121
121
  desc "Disable the APC administrative panel"
122
- task :disable, :except => { :no_release => true } do
122
+ task :disable, :roles => :web, :except => { :no_release => true } do
123
123
  run "rm #{current_path}/apc.php"
124
124
  end
125
125
 
126
126
  desc "Enable the APC administrative panel"
127
- task :enable, :except => { :no_release => true } do
127
+ task :enable, :roles => :web, :except => { :no_release => true } do
128
128
  run "ln -s /usr/local/lib/php/apc.php #{current_path}/apc.php"
129
129
  end
130
130
  end
data/lib/ash/drupal.rb CHANGED
@@ -35,7 +35,7 @@ configuration.load do
35
35
  end
36
36
 
37
37
  desc "Setup shared application directories and permissions after initial setup"
38
- task :setup_shared, :roles => :web do
38
+ task :setup_shared do
39
39
  # remove Capistrano specific directories
40
40
  run "rm -Rf #{shared_path}/log"
41
41
  run "rm -Rf #{shared_path}/pids"
@@ -51,7 +51,7 @@ configuration.load do
51
51
  end
52
52
 
53
53
  desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
54
- task :finalize_update, :except => { :no_release => true } do
54
+ task :finalize_update, :roles => :web, :except => { :no_release => true } do
55
55
  # remove shared directories
56
56
  multisites.each_pair do |folder, url|
57
57
  run "mv #{latest_release}/sites/#{folder} #{latest_release}/sites/#{url}"
@@ -61,14 +61,14 @@ configuration.load do
61
61
 
62
62
  namespace :web do
63
63
  desc "Disable the application and show a message screen"
64
- task :disable do
64
+ task :disable, :roles => :web do
65
65
  multisites.each_pair do |folder, url|
66
66
  run "#{drush_bin} -l #{url} -r #{latest_release} vset --yes site_offline 1"
67
67
  end
68
68
  end
69
69
 
70
70
  desc "Enable the application and remove the message screen"
71
- task :enable do
71
+ task :enable, :roles => :web do
72
72
  multisites.each_pair do |folder, url|
73
73
  run "#{drush_bin} -l #{url} -r #{latest_release} vdel --yes site_offline"
74
74
  end
@@ -98,7 +98,7 @@ configuration.load do
98
98
  # --------------------------------------------
99
99
  namespace :drupal do
100
100
  desc "Symlink shared directories"
101
- task :symlink, :except => { :no_release => true } do
101
+ task :symlink, :roles => :web, :except => { :no_release => true } do
102
102
  multisites.each_pair do |folder, url|
103
103
  # symlinks the appropriate environment's settings.php file
104
104
  symlink_config_file
@@ -115,7 +115,7 @@ configuration.load do
115
115
  settings.<environment>.php => new default
116
116
  settings.php.<environment> => deprecated
117
117
  DESC
118
- task :symlink_config_file, :except => { :no_release => true} do
118
+ task :symlink_config_file, :roles => :web, :except => { :no_release => true} do
119
119
  multisites.each_pair do |folder, url|
120
120
  drupal_app_site_dir = " #{latest_release}/sites/#{url}"
121
121
 
@@ -131,21 +131,21 @@ configuration.load do
131
131
  end
132
132
 
133
133
  desc "Replace local database paths with remote paths"
134
- task :updatedb, :except => { :no_release => true } do
134
+ task :updatedb, :roles => :web, :except => { :no_release => true } do
135
135
  multisites.each_pair do |folder, url|
136
136
  run "#{drush_bin} -l #{url} -r #{current_path} sqlq \"UPDATE {files} SET filepath = REPLACE(filepath,'sites/#{folder}/files','sites/#{url}/files');\""
137
137
  end
138
138
  end
139
139
 
140
140
  desc "Clear all Drupal cache"
141
- task :clearcache, :except => { :no_release => true } do
141
+ task :clearcache, :roles => :web, :except => { :no_release => true } do
142
142
  multisites.each_pair do |folder, url|
143
143
  run "#{drush_bin} -l #{url} -r #{current_path} cache-clear all"
144
144
  end
145
145
  end
146
146
 
147
147
  desc "Protect system files"
148
- task :protect, :except => { :no_release => true } do
148
+ task :protect, :roles => :web, :except => { :no_release => true } do
149
149
  multisites.each_pair do |folder, url|
150
150
  run "chmod 644 #{latest_release}/sites/#{url}/settings.php*"
151
151
  end
@@ -11,7 +11,7 @@ configuration.load do
11
11
  # --------------------------------------------
12
12
  namespace :deploy do
13
13
  desc "Setup shared application directories and permissions after initial setup"
14
- task :setup_shared, :roles => :web do
14
+ task :setup_shared do
15
15
  # remove Capistrano specific directories
16
16
  run "rm -Rf #{shared_path}/log"
17
17
  run "rm -Rf #{shared_path}/pids"
@@ -38,7 +38,7 @@ configuration.load do
38
38
  end
39
39
 
40
40
  desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
41
- task :finalize_update, :except => { :no_release => true } do
41
+ task :finalize_update, :roles => :web, :except => { :no_release => true } do
42
42
  # synchronize media directory with shared data
43
43
  run "rsync -rltDvzog #{latest_release}/media/ #{shared_path}/media/"
44
44
 
@@ -56,12 +56,19 @@ configuration.load do
56
56
  end
57
57
  end
58
58
 
59
+ namespace :magento do
60
+ desc "Purge Magento cache directory"
61
+ task :purge_cache, :roles => :web, :except => { :no_release => true } do
62
+ run "rm -Rf #{shared_path}/var/cache/*"
63
+ end
64
+ end
65
+
59
66
  # --------------------------------------------
60
67
  # Overloaded Ash tasks
61
68
  # --------------------------------------------
62
69
  namespace :ash do
63
70
  desc "Set standard permissions for Ash servers"
64
- task :fixperms, :except => { :no_release => true } do
71
+ task :fixperms, :roles => :web, :except => { :no_release => true } do
65
72
  # chmod the files and directories.
66
73
  run "find #{latest_release} -type d -exec chmod 755 {} \\;"
67
74
  run "find #{latest_release} -type f -exec chmod 644 {} \\;"
data/lib/ash/magento.rb CHANGED
@@ -25,7 +25,8 @@ configuration.load do
25
25
  task :setup_local do
26
26
  # attempt to create files needed for proper deployment
27
27
  system("cp .htaccess htaccess.dist")
28
- system("touch app/etc/local.staging.xml app/etc/local.production.xml")
28
+ system("cp app/etc/local.xml app/etc/local.xml.staging")
29
+ system("cp app/etc/local.xml app/etc/local.xml.production")
29
30
  end
30
31
 
31
32
  desc "Setup shared application directories and permissions after initial setup"
@@ -46,7 +47,7 @@ configuration.load do
46
47
  end
47
48
 
48
49
  desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
49
- task :finalize_update, :except => { :no_release => true } do
50
+ task :finalize_update, :roles => :web, :except => { :no_release => true } do
50
51
  # synchronize media directory with shared data
51
52
  sudo "rsync -rltDvzog #{latest_release}/media/ #{shared_path}/media/"
52
53
  sudo "chmod -R 777 #{shared_path}/media/"
@@ -66,12 +67,12 @@ configuration.load do
66
67
 
67
68
  namespace :web do
68
69
  desc "Disable the application and show a message screen"
69
- task :disable, :except => { :no_release => true } do
70
+ task :disable, :roles => :web, :except => { :no_release => true } do
70
71
  run "touch #{current_path}/maintenance.flag"
71
72
  end
72
73
 
73
74
  desc "Enable the application and remove the message screen"
74
- task :enable, :except => { :no_release => true } do
75
+ task :enable, :roles => :web, :except => { :no_release => true } do
75
76
  run "rm #{current_path}/maintenance.flag"
76
77
  end
77
78
  end
@@ -82,7 +83,7 @@ configuration.load do
82
83
  # --------------------------------------------
83
84
  namespace :magento do
84
85
  desc "Set appropriate configuration values for the stage"
85
- task :activate_config, :except => { :no_release => true } do
86
+ task :activate_config, :roles => :web, :except => { :no_release => true } do
86
87
  case true
87
88
  when remote_file_exists?("#{latest_release}/app/etc/local.#{stage}.xml")
88
89
  run "cp -f #{latest_release}/app/etc/local.#{stage}.xml #{latest_release}/app/etc/local.xml"
@@ -92,7 +93,7 @@ configuration.load do
92
93
  end
93
94
 
94
95
  desc "Symlink shared directories"
95
- task :symlink, :except => { :no_release => true } do
96
+ task :symlink, :roles => :web, :except => { :no_release => true } do
96
97
  run "ln -nfs #{shared_path}/includes #{current_release}/includes"
97
98
  run "ln -nfs #{shared_path}/media #{current_release}/media"
98
99
  run "ln -nfs #{shared_path}/sitemap #{current_release}/sitemap"
@@ -100,12 +101,12 @@ configuration.load do
100
101
  end
101
102
 
102
103
  desc "Purge Magento cache directory"
103
- task :purge_cache, :except => { :no_release => true } do
104
+ task :purge_cache, :roles => :web, :except => { :no_release => true } do
104
105
  sudo "rm -Rf #{shared_path}/var/cache/*"
105
106
  end
106
107
 
107
108
  desc "Watch Magento system log"
108
- task :watch_logs, :except => { :no_release => true } do
109
+ task :watch_logs, :roles => :web, :except => { :no_release => true } do
109
110
  run "tail -f #{shared_path}/var/log/system.log" do |channel, stream, data|
110
111
  puts # for an extra line break before the host name
111
112
  puts "#{channel[:host]}: #{data}"
@@ -114,7 +115,7 @@ configuration.load do
114
115
  end
115
116
 
116
117
  desc "Watch Magento exception log"
117
- task :watch_exceptions, :except => { :no_release => true } do
118
+ task :watch_exceptions, :roles => :web, :except => { :no_release => true } do
118
119
  run "tail -f #{shared_path}/var/log/exception.log" do |channel, stream, data|
119
120
  puts # for an extra line break before the host name
120
121
  puts "#{channel[:host]}: #{data}"
@@ -129,4 +130,4 @@ configuration.load do
129
130
 
130
131
  # update core_config_data; set value = "domain" where scope_id = 0 and path = "web/unsecure/base_url"
131
132
 
132
- end
133
+ end
data/lib/ash/wordpress.rb CHANGED
@@ -40,7 +40,7 @@ namespace :deploy do
40
40
  end
41
41
 
42
42
  desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
43
- task :finalize_update, :except => { :no_release => true } do
43
+ task :finalize_update, :roles => :web, :except => { :no_release => true } do
44
44
  # remove shared directories
45
45
  run "rm -Rf #{latest_release}/#{uploads_path}"
46
46
  run "rm -Rf #{latest_release}/wp-content/cache"
@@ -56,14 +56,14 @@ end
56
56
  # --------------------------------------------
57
57
  namespace :wordpress do
58
58
  desc "Links the correct settings file"
59
- task :symlink do
59
+ task :symlink, :roles => :web, :except => { :no_release => true } do
60
60
  run "ln -nfs #{shared_path}/uploads #{current_release}/#{uploads_path}"
61
61
  run "ln -nfs #{shared_path}/cache #{current_release}/wp-content/cache"
62
62
  run "ln -nfs #{latest_release}/wp-config.php.#{stage} #{latest_release}/wp-config.php"
63
63
  end
64
64
 
65
65
  desc "Set URL in database"
66
- task :updatedb do
66
+ task :updatedb, :roles => :db, :except => { :no_release => true } do
67
67
  run "mysql -u #{dbuser} -p #{dbpass} #{dbname} -e 'UPDATE #{dbprefix}options SET option_value = \"#{application}\" WHERE option_name = \"siteurl\" OR option_name = \"home\"'"
68
68
  end
69
69
 
@@ -40,7 +40,7 @@ configuration.load do
40
40
 
41
41
  namespace :zend do
42
42
  desc "Symlink shared directories"
43
- task :symlink, :except => { :no_release => true } do
43
+ task :symlink, :roles => :web, :except => { :no_release => true } do
44
44
  run "ln -nfs #{shared_path}/var #{current_release}/var"
45
45
  run "ln -nfs #{shared_path}/system #{current_release}/public/system"
46
46
  run "mv #{current_release}/application/configs/application.ini.dist #{current_release}/application/configs/application.ini"
@@ -61,7 +61,7 @@ configuration.load do
61
61
 
62
62
  namespace :doctrine do
63
63
  desc "Run Doctrine Migrations"
64
- task :migrate, :except => { :no_release => true } do
64
+ task :migrate, :roles => :web, :except => { :no_release => true } do
65
65
  puts "Running Doctrine Migrations..."
66
66
  run "cd #{current_release} && ./scripts/doctrine-cli migrate"
67
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-ash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.1.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-07-07 00:00:00.000000000 -05:00
13
- default_executable:
12
+ date: 2011-08-23 00:00:00.000000000Z
14
13
  dependencies: []
15
14
  description: August Ash recipes for Capistrano
16
15
  email: code@augustash.com
@@ -34,7 +33,6 @@ files:
34
33
  - lib/ash/wordpress_shared_hosting.rb
35
34
  - lib/ash/zend_doctrine.rb
36
35
  - lib/ash/zend_doctrine_shared_hosting.rb
37
- has_rdoc: true
38
36
  homepage: https://github.com/augustash/capistrano-ash
39
37
  licenses: []
40
38
  post_install_message:
@@ -55,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
53
  version: '0'
56
54
  requirements: []
57
55
  rubyforge_project:
58
- rubygems_version: 1.6.1
56
+ rubygems_version: 1.8.6
59
57
  signing_key:
60
58
  specification_version: 3
61
59
  summary: Useful task libraries for August Ash recipes for Capistrano