capistrano-ash 1.3.6 → 1.3.7

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDliNjU4MTE5NWM5NjY2YjBhMGI3ZDBjZTk0ODk3MmZjYjI3MWViYQ==
4
+ MDNkNzI1MjBlOWRlMjNjYWM3NTMyM2Q1ZWE5YWYyZGIxNjRiZmQyMQ==
5
5
  data.tar.gz: !binary |-
6
- NGU4NDI4YzI1NTcwZDJiZTQzMzZkMWRjYzQ5NTI5ODcxMDc1NzkxNQ==
6
+ ZmJiMmU4YjM5OGVkYTdmM2U2MjdkNDJlNjIxZjdmZDU1MzE1YTJlYw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YWQ2ZjNkYzE2OTNiNDgzMjkxZDI2NDQwNzZlZjQ2OGJiZDJjZWVlNmU1MzI5
10
- NWYxN2I0MmNmZTIyM2Y5MGU0MWE0Njk2MjU4ODZlYWY4ZjY2NTIxY2I1OTQy
11
- Y2E5Yjg0NTRhODBlYTM1NzI3N2VhYmQyYmViZGFjMTA4Y2UxZjE=
9
+ ZDVhYzM5MzVmNTgyNWU3Y2M3YzIzNjZkODNjNGE5NjM2MGNhY2VlZTI3NDIw
10
+ ODVjYTVkZmQzNzIxMzM5MDI0N2M4YTk4YWNlYzliODkxODBkMDc3NDM5Mzli
11
+ ZTY0MGJkN2YzODYwOTRkZGJhZGFlOWU2ZGFhYTc4NTA0YWExZmU=
12
12
  data.tar.gz: !binary |-
13
- YzY1YTIyMGU5MTQ3YmJlMTY1NTMzZGUxMTE1MTE1YmY1NDAxODlkODUyYjc4
14
- MjRlNmVkZDFmNDViZGJjYzVkMDJlODlhMDk0NjcwNjIzYzBlODNlMmFjNzI0
15
- NTVmMjcxNTNhNzg4YmJlZjU3MTY5ZmQzYzhiZmU4ZjBkNzY0Mzc=
13
+ MWJjOTA5Mzc0OWViNjgwM2M5YWI0ODA2NzViNWEwOWE2OWY5ZDkwMTE2N2Y3
14
+ ZDhmMTFhYjY3NWVhZTVlMzU5ZGJmODM5NmY0Zjk1ZDQ5MDk5NDFiODE1NDY5
15
+ NTY4NTllOWEzMzNhMjliYTU5MDgwNjc5ZGI2OTgzMzI2MTJlZTI=
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ begin
11
11
  gemspec.homepage = "https://github.com/augustash/capistrano-ash"
12
12
  gemspec.authors = ["August Ash"]
13
13
  # Gem dependencies
14
- gemspec.add_dependency('capistrano', '>= 2.12.0')
14
+ gemspec.add_dependency('capistrano', '~> 2.15.0')
15
15
  gemspec.add_dependency('capistrano-ext')
16
16
  gemspec.add_dependency('railsless-deploy')
17
17
  gemspec.add_dependency('capistrano_colors')
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.6
1
+ 1.3.7
@@ -4,18 +4,16 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "capistrano-ash"
8
- s.version = "1.3.2"
7
+ s.name = "capistrano-ash"
8
+ s.version = "1.3.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["August Ash"]
12
- s.date = "2013-07-18"
13
- s.description = "August Ash recipes for Capistrano"
14
- s.email = "code@augustash.com"
15
- s.extra_rdoc_files = [
16
- "README.textile"
17
- ]
18
- s.files = [
11
+ s.authors = ["August Ash"]
12
+ s.date = "2013-07-18"
13
+ s.description = "August Ash recipes for Capistrano"
14
+ s.email = "code@augustash.com"
15
+ s.extra_rdoc_files = ["README.textile"]
16
+ s.files = [
19
17
  "CHANGELOG.rdoc",
20
18
  "README.textile",
21
19
  "Rakefile",
@@ -32,27 +30,27 @@ Gem::Specification.new do |s|
32
30
  "lib/ash/zend_doctrine.rb",
33
31
  "lib/ash/zend_doctrine_shared_hosting.rb"
34
32
  ]
35
- s.homepage = "https://github.com/augustash/capistrano-ash"
36
- s.require_paths = ["lib"]
37
- s.rubygems_version = "2.0.3"
38
- s.summary = "Useful task libraries for August Ash recipes for Capistrano"
33
+ s.homepage = "https://github.com/augustash/capistrano-ash"
34
+ s.require_paths = ["lib"]
35
+ s.rubygems_version = "2.0.3"
36
+ s.summary = "Useful task libraries for August Ash recipes for Capistrano"
39
37
 
40
38
  if s.respond_to? :specification_version then
41
39
  s.specification_version = 4
42
40
 
43
41
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
- s.add_runtime_dependency(%q<capistrano>, [">= 2.12.0"])
42
+ s.add_runtime_dependency(%q<capistrano>, ["~> 2.15.0"])
45
43
  s.add_runtime_dependency(%q<capistrano-ext>, [">= 0"])
46
44
  s.add_runtime_dependency(%q<railsless-deploy>, [">= 0"])
47
45
  s.add_runtime_dependency(%q<capistrano_colors>, [">= 0"])
48
46
  else
49
- s.add_dependency(%q<capistrano>, [">= 2.12.0"])
47
+ s.add_dependency(%q<capistrano>, ["~> 2.15.0"])
50
48
  s.add_dependency(%q<capistrano-ext>, [">= 0"])
51
49
  s.add_dependency(%q<railsless-deploy>, [">= 0"])
52
50
  s.add_dependency(%q<capistrano_colors>, [">= 0"])
53
51
  end
54
52
  else
55
- s.add_dependency(%q<capistrano>, [">= 2.12.0"])
53
+ s.add_dependency(%q<capistrano>, ["~> 2.15.0"])
56
54
  s.add_dependency(%q<capistrano-ext>, [">= 0"])
57
55
  s.add_dependency(%q<railsless-deploy>, [">= 0"])
58
56
  s.add_dependency(%q<capistrano_colors>, [">= 0"])
@@ -109,8 +109,8 @@ configuration.load do
109
109
  task :setup, :except => { :no_release => true } do
110
110
  dirs = [deploy_to, releases_path, shared_path]
111
111
  dirs += shared_children.map { |d| File.join(shared_path, d.split('/').last) }
112
- try_sudo "mkdir -p #{dirs.join(' ')}"
113
- try_sudo "chmod 755 #{dirs.join(' ')}" if fetch(:group_writable, true)
112
+ run "mkdir -p #{dirs.join(' ')}"
113
+ run "chmod 755 #{dirs.join(' ')}" if fetch(:group_writable, true)
114
114
  end
115
115
 
116
116
  desc "Setup shared application directories and permissions after initial setup"
@@ -120,7 +120,7 @@ configuration.load do
120
120
 
121
121
  desc "Setup backup directory for database and web files"
122
122
  task :setup_backup, :except => { :no_release => true } do
123
- try_sudo "mkdir -p #{backups_path} #{tmp_backups_path} && chmod 755 #{backups_path}"
123
+ run "mkdir -p #{backups_path} #{tmp_backups_path} && chmod 755 #{backups_path}"
124
124
  end
125
125
 
126
126
  desc <<-DESC
@@ -164,7 +164,7 @@ configuration.load do
164
164
  # adding a chown -R method to fix permissions on the directory
165
165
  # this should help with issues related to permission denied
166
166
  # as in issues #28 and #30
167
- run "#{sudo} chown -R #{user}:#{user} #{dir}" if remote_dir_exists?(dir)
167
+ run "#{try_sudo} chown -R #{user}:#{user} #{dir}" if remote_dir_exists?(dir)
168
168
 
169
169
  set_perms_dirs(dir)
170
170
  set_perms_files(dir)
@@ -174,7 +174,7 @@ configuration.load do
174
174
  end
175
175
  end
176
176
 
177
- run "#{sudo} rm -rf #{directories}", :hosts => [channel[:server]]
177
+ run "#{try_sudo} rm -rf #{directories}", :hosts => [channel[:server]]
178
178
  end
179
179
  end
180
180
  end
@@ -277,8 +277,8 @@ EOF
277
277
  nginx_cmd = fetch(:nginx_init_command, "/etc/init.d/nginx")
278
278
  phpfpm_cmd = fetch(:phpfpm_init_command, "/etc/init.d/php-fpm")
279
279
 
280
- run "#{sudo} #{nginx_cmd} #{cmd}"
281
- run "#{sudo} #{phpfpm_cmd} #{cmd}"
280
+ run "#{try_sudo} #{nginx_cmd} #{cmd}"
281
+ run "#{try_sudo} #{phpfpm_cmd} #{cmd}"
282
282
  end
283
283
  end
284
284
  end
@@ -583,11 +583,11 @@ EOF
583
583
  if !compass_bin.nil?
584
584
  if watched_dirs.is_a? String
585
585
  logger.debug "Compiling SASS for #{watched_dirs}"
586
- system "#{compass_bin} compile --output-style #{compass_output} --environment #{compass_env} ./#{watched_dirs}"
586
+ system "#{compass_bin} clean ./#{watched_dirs} && #{compass_bin} compile --output-style #{compass_output} --environment #{compass_env} ./#{watched_dirs}"
587
587
  elsif watched_dirs.is_a? Array
588
588
  logger.debug "Compiling SASS for #{watched_dirs.join(', ')}"
589
589
  watched_dirs.each do |dir|
590
- system "#{compass_bin} compile --output-style #{compass_output} --environment #{compass_env} ./#{dir}"
590
+ system "#{compass_bin} clean ./#{dir} && #{compass_bin} compile --output-style #{compass_output} --environment #{compass_env} ./#{dir}"
591
591
  end
592
592
  else
593
593
  logger.debug "Unable to compile SASS because :compass_watched_dirs was neither a String nor an Array"
@@ -44,10 +44,45 @@ end
44
44
 
45
45
  # set the permissions for files recurisvely from the starting directory (dir_path)
46
46
  def set_perms_files(dir_path, perm = 644)
47
- run "find #{dir_path} -type f -print0 | xargs -0 #{sudo} chmod #{perm}" if remote_dir_exists?(dir_path)
47
+ begin
48
+ run "find #{dir_path} -type f -print0 | xargs -0 #{try_sudo} chmod #{perm}" if remote_dir_exists?(dir_path)
49
+ rescue Exception => e
50
+ logger.important "FAILED to set permissions of #{perm} on files within #{dir_path}!"
51
+ logger.important e.message
52
+ logger.important "Trying to set permissions without using xargs"
53
+ begin
54
+ run "find #{dir_path} -type f -exec #{try_sudo} chmod #{perm} {} \\;" if remote_dir_exists?(dir_path)
55
+ rescue Exception => e
56
+ logger.important "FAILED second attempt to set permissions of #{perm} on files within #{dir_path}!"
57
+ logger.important e.message
58
+ end
59
+ end
48
60
  end
49
61
 
50
- # set the permissions for directories recurisvely from the starting directory (dir_path)
62
+ # set the permissions for directories recursively from the starting directory (dir_path)
51
63
  def set_perms_dirs(dir_path, perm = 755)
52
- run "find #{dir_path} -type d -print0 | xargs -0 #{sudo} chmod #{perm}" if remote_dir_exists?(dir_path)
64
+ begin
65
+ run "find #{dir_path} -type d -print0 | xargs -0 #{try_sudo} chmod #{perm}" if remote_dir_exists?(dir_path)
66
+ rescue Exception => e
67
+ logger.important "FAILED to set permissions of #{perm} on directories within #{dir_path}!"
68
+ logger.important e.message
69
+ logger.important "Trying to set permissions without using xargs"
70
+ begin
71
+ run "find #{dir_path} -type d -exec #{try_sudo} chmod #{perm} {} \\;" if remote_dir_exists?(dir_path)
72
+ rescue Exception => e
73
+ logger.important "FAILED second attempt to set permissions of #{perm} on directories within #{dir_path}!"
74
+ logger.important e.message
75
+ end
76
+ end
77
+ end
78
+
79
+ # set permission on specific file or directory path instead of doing
80
+ # it with a big hammer like set_perms_files or set_perms_dir
81
+ def set_perms(path, perm = 644)
82
+ begin
83
+ try_sudo "chmod #{perm} #{path}" if remote_file_exists?(path) || remote_dir_exists?(path)
84
+ rescue Exception => e
85
+ logger.important "FAILED to set permission of #{perm} on #{path}"
86
+ logger.important e.message
87
+ end
53
88
  end
@@ -17,6 +17,21 @@ configuration.load do
17
17
  depend :remote, :command, 'drush'
18
18
  depend :remote, :command, 'rsync'
19
19
 
20
+ # --------------------------------------------
21
+ # try_sudo configuration
22
+ # --------------------------------------------
23
+ set :use_sudo, true # allow try_sudo methods to actually run via sudo
24
+ # set(:admin_runner) {"#{user}"} # specify the :admin_runner if you need to run it as another user other than root
25
+
26
+ # Clear out the default prompt (i.e., `sudo -p 'sudo password: '`) to fall back
27
+ # to just using `sudo` due to the concatenation in the sudo method.
28
+ #
29
+ # This assumes that you have set up your SSH user to have passwordless sudo
30
+ # setup for common commands (e.g., mv, cp, ln, mkdir, chown, chmod, rm, etc.)
31
+ #
32
+ # (see: https://github.com/capistrano/capistrano/blob/legacy-v2/lib/capistrano/configuration/actions/invocation.rb#L229-L237)
33
+ set :sudo_prompt, ''
34
+
20
35
  # --------------------------------------------
21
36
  # Setting defaults
22
37
  # --------------------------------------------
@@ -24,7 +39,6 @@ configuration.load do
24
39
  set :drush_bin, "drush"
25
40
  _cset :dump_options, "" # blank options b/c of MYISAM engine (unless anyone knows options that should be included)
26
41
 
27
-
28
42
  # --------------------------------------------
29
43
  # Ubercart Files/Folders
30
44
  # assumes ubercart files are located
@@ -70,7 +84,7 @@ configuration.load do
70
84
 
71
85
  # create shared directories
72
86
  multisites.each_pair do |folder, url|
73
- try_sudo "mkdir -p #{shared_path}/#{url}/files"
87
+ run "mkdir -p #{shared_path}/#{url}/files"
74
88
  end
75
89
 
76
90
  # set correct permissions
@@ -158,7 +172,7 @@ configuration.load do
158
172
  # symlinks the appropriate environment's settings.php file
159
173
  symlink_config_file
160
174
 
161
- try_sudo "ln -nfs #{shared_path}/#{url}/files #{latest_release}/sites/#{url}/files"
175
+ run "ln -nfs #{shared_path}/#{url}/files #{latest_release}/sites/#{url}/files"
162
176
  run "#{drush_bin} -l #{url} -r #{current_path} vset --yes file_directory_path sites/#{url}/files"
163
177
  end
164
178
  end
@@ -202,7 +216,7 @@ configuration.load do
202
216
  desc "Protect system files"
203
217
  task :protect, :roles => :web, :except => { :no_release => true } do
204
218
  multisites.each_pair do |folder, url|
205
- try_sudo "chmod 644 #{latest_release}/sites/#{url}/settings.php*"
219
+ run "chmod 644 #{latest_release}/sites/#{url}/settings.php*"
206
220
  end
207
221
  end
208
222
 
@@ -234,7 +248,7 @@ configuration.load do
234
248
  DESC
235
249
  task :setup_ubercart_shared, :roles => :web, :except => { :no_release => true } do
236
250
  multisites.each_pair do |folder, url|
237
- try_sudo "mkdir -p #{shared_path}/#{url}/#{uc_root}"
251
+ run "mkdir -p #{shared_path}/#{url}/#{uc_root}"
238
252
  end
239
253
  end
240
254
 
@@ -253,13 +267,13 @@ configuration.load do
253
267
  task :secure_downloadable_files, :except => { :no_release => true } do
254
268
  # loop through the multisites and move files
255
269
  multisites.each_pair do |folder, url|
256
- try_sudo "mkdir -p #{shared_path}/#{url}/#{uc_root}/#{uc_downloadable_products_root}"
270
+ run "mkdir -p #{shared_path}/#{url}/#{uc_root}/#{uc_downloadable_products_root}"
257
271
 
258
272
  ubercart_dir = "#{latest_release}/sites/#{url}/files/#{uc_root}/#{uc_downloadable_products_root}"
259
273
 
260
274
  case true
261
275
  when remote_dir_exists?("#{ubercart_dir}")
262
- try_sudo "rsync -rltDvzog #{ubercart_dir} #{shared_path}/#{url}/#{uc_root}/#{uc_downloadable_products_root}"
276
+ run "rsync -rltDvzog #{ubercart_dir} #{shared_path}/#{url}/#{uc_root}/#{uc_downloadable_products_root}"
263
277
  else
264
278
  logger.important "Failed to rsync the ubercart downloadable products in #{ubercart_dir} because the directory doesn't exist"
265
279
  end
@@ -287,7 +301,7 @@ configuration.load do
287
301
  task :secure_encryption_key, :roles => :web, :except => { :no_release => true } do
288
302
  # loop through the multisites and move keys
289
303
  multisites.each_pair do |folder, url|
290
- try_sudo "mkdir -p #{shared_path}/#{url}/#{uc_root}/#{uc_encryption_keys_root}"
304
+ run "mkdir -p #{shared_path}/#{url}/#{uc_root}/#{uc_encryption_keys_root}"
291
305
 
292
306
  # update the ubercart's database tracking of where the
293
307
  # root file path is for encryption keys. This should
@@ -28,7 +28,7 @@ configuration.load do
28
28
  end
29
29
 
30
30
  # set correct permissions for a shared hosting environment
31
- set_perms_dirs("#{shared_path}")
31
+ run "chmod -R 755 #{shared_path}/*"
32
32
  end
33
33
  end
34
34
  end
@@ -7,6 +7,11 @@ configuration = Capistrano::Configuration.respond_to?(:instance) ?
7
7
  Capistrano.configuration(:must_exist)
8
8
 
9
9
  configuration.load do
10
+
11
+ # shared servers typically don't allow `sudo`,
12
+ # so this will tell `try_sudo` to run as the `:user` instead
13
+ set :use_sudo, false
14
+
10
15
  # --------------------------------------------
11
16
  # Default variables
12
17
  # --------------------------------------------
@@ -30,13 +35,14 @@ configuration.load do
30
35
  run "mkdir -p #{shared_path}/var"
31
36
 
32
37
  # set correct permissions
33
- run "chmod 755 #{shared_path}/*"
38
+ set_perms("#{shared_path}/*", 755)
34
39
  end
35
40
 
36
41
  desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
37
42
  task :finalize_update, :roles => :web, :except => { :no_release => true } do
38
43
  # synchronize media directory with shared data
39
44
  run "rsync -rltDvzog #{latest_release}/media/ #{shared_path}/media/"
45
+ set_perms("#{shared_path}/media/", 755)
40
46
 
41
47
  # put ".htaccess" in place
42
48
  run "mv #{latest_release}/htaccess.dist #{latest_release}/.htaccess"
@@ -49,25 +55,9 @@ configuration.load do
49
55
 
50
56
  # set the file and directory permissions
51
57
  ash.fixperms
52
- end
53
- end
54
-
55
- namespace :magento do
56
- desc "Purge Magento cache directory"
57
- task :purge_cache, :roles => :web, :except => { :no_release => true } do
58
- run "rm -Rf #{shared_path}/var/cache/*"
59
- end
60
- end
61
-
62
- # --------------------------------------------
63
- # Overloaded Ash tasks
64
- # --------------------------------------------
65
- namespace :ash do
66
- desc "Set standard permissions for Ash servers"
67
- task :fixperms, :roles => :web, :except => { :no_release => true } do
68
- # chmod the files and directories.
69
- run "find #{latest_release} -type d -exec chmod 755 {} \\;"
70
- run "find #{latest_release} -type f -exec chmod 644 {} \\;"
58
+ set_perms("#{latest_release}/pear", 400)
59
+ set_perms("#{latest_release}/mage", 400)
60
+ set_perms("#{latest_release}/app/etc", "o+w")
71
61
  end
72
62
  end
73
63
  end
@@ -17,6 +17,21 @@ configuration.load do
17
17
  # --------------------------------------------
18
18
  depend :remote, :command, 'rsync'
19
19
 
20
+ # --------------------------------------------
21
+ # try_sudo configuration
22
+ # --------------------------------------------
23
+ set :use_sudo, true # allow try_sudo methods to actually run via sudo
24
+ # set(:admin_runner) {"#{user}"} # specify the :admin_runner if you need to run it as another user other than root
25
+
26
+ # Clear out the default prompt (i.e., `sudo -p 'sudo password: '`) to fall back
27
+ # to just using `sudo` due to the concatenation in the sudo method.
28
+ #
29
+ # This assumes that you have set up your SSH user to have passwordless sudo
30
+ # setup for common commands (e.g., mv, cp, ln, mkdir, chown, chmod, rm, etc.)
31
+ #
32
+ # (see: https://github.com/capistrano/capistrano/blob/legacy-v2/lib/capistrano/configuration/actions/invocation.rb#L229-L237)
33
+ set :sudo_prompt, ''
34
+
20
35
  # --------------------------------------------
21
36
  # Magento Variables
22
37
  # --------------------------------------------
@@ -57,9 +72,9 @@ configuration.load do
57
72
  desc "Setup shared application directories and permissions after initial setup"
58
73
  task :setup_shared do
59
74
  # remove Capistrano specific directories
60
- run "rm -Rf #{shared_path}/log"
61
- run "rm -Rf #{shared_path}/pids"
62
- run "rm -Rf #{shared_path}/system"
75
+ try_sudo "rm -Rf #{shared_path}/log"
76
+ try_sudo "rm -Rf #{shared_path}/pids"
77
+ try_sudo "rm -Rf #{shared_path}/system"
63
78
 
64
79
  # create shared directories
65
80
  run "mkdir -p #{shared_path}/includes"
@@ -68,14 +83,14 @@ configuration.load do
68
83
  run "mkdir -p #{shared_path}/var"
69
84
 
70
85
  # set correct permissions
71
- run "chmod 777 #{shared_path}/*"
86
+ set_perms("#{shared_path}/*", 777)
72
87
  end
73
88
 
74
89
  desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
75
90
  task :finalize_update, :roles => :web, :except => { :no_release => true } do
76
91
  # synchronize media directory with shared data
77
92
  run "rsync -rltDvzog #{latest_release}/media/ #{shared_path}/media/"
78
- run "#{sudo} chmod -R 777 #{shared_path}/media/"
93
+ set_perms("#{shared_path}/media/", 777)
79
94
 
80
95
  # remove directories that will be shared
81
96
  run "rm -Rf #{latest_release}/includes"
@@ -85,9 +100,9 @@ configuration.load do
85
100
 
86
101
  # set the file and directory permissions
87
102
  ash.fixperms
88
- run "chmod 400 #{latest_release}/pear" if remote_file_exists?("#{latest_release}/pear")
89
- run "chmod 400 #{latest_release}/mage" if remote_file_exists?("#{latest_release}/mage")
90
- run "chmod o+w #{latest_release}/app/etc"
103
+ set_perms("#{latest_release}/pear", 400)
104
+ set_perms("#{latest_release}/mage", 400)
105
+ set_perms("#{latest_release}/app/etc", "o+w")
91
106
  end
92
107
 
93
108
  namespace :web do
@@ -127,7 +142,8 @@ configuration.load do
127
142
 
128
143
  desc "Purge Magento cache directory"
129
144
  task :purge_cache, :roles => :web, :except => { :no_release => true } do
130
- run "#{sudo} rm -Rf #{shared_path}/var/cache/*"
145
+ try_sudo "rm -Rf #{shared_path}/var/cache/*"
146
+ try_sudo "rm -Rf #{shared_path}/var/full_page_cache/*" if remote_dir_exists?("#{shared_path}/var/full_page_cache}")
131
147
  end
132
148
 
133
149
  desc "Watch Magento system log"
@@ -150,9 +166,8 @@ configuration.load do
150
166
 
151
167
  desc "Clear the Magento Cache"
152
168
  task :cc, :roles => [:web, :app], :except => { :no_release => true } do
153
- run "#{sudo} chown -R #{user}:#{user} #{shared_path}/var/*"
169
+ try_sudo "chown -R #{user}:#{user} #{shared_path}/var/*"
154
170
  magento.purge_cache
155
- run "#{sudo} rm -rf #{shared_path}/var/full_page_cache/*"
156
171
  end
157
172
 
158
173
  desc "Enable display errors"
@@ -8,6 +8,21 @@ configuration = Capistrano::Configuration.respond_to?(:instance) ?
8
8
 
9
9
  configuration.load do
10
10
 
11
+ # --------------------------------------------
12
+ # try_sudo configuration
13
+ # --------------------------------------------
14
+ set :use_sudo, true # allow try_sudo methods to actually run via sudo
15
+ # set(:admin_runner) {"#{user}"} # specify the :admin_runner if you need to run it as another user other than root
16
+
17
+ # Clear out the default prompt (i.e., `sudo -p 'sudo password: '`) to fall back
18
+ # to just using `sudo` due to the concatenation in the sudo method.
19
+ #
20
+ # This assumes that you have set up your SSH user to have passwordless sudo
21
+ # setup for common commands (e.g., mv, cp, ln, mkdir, chown, chmod, rm, etc.)
22
+ #
23
+ # (see: https://github.com/capistrano/capistrano/blob/legacy-v2/lib/capistrano/configuration/actions/invocation.rb#L229-L237)
24
+ set :sudo_prompt, ''
25
+
11
26
  # --------------------------------------------
12
27
  # Setting defaults
13
28
  # --------------------------------------------
@@ -43,7 +58,7 @@ configuration.load do
43
58
  run "mkdir -p #{shared_path}/cache"
44
59
 
45
60
  # set correct permissions
46
- run "chmod -R 777 #{shared_path}/*"
61
+ run "#{try_sudo} chmod -R 777 #{shared_path}/*"
47
62
  end
48
63
 
49
64
  desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
@@ -96,7 +111,7 @@ configuration.load do
96
111
 
97
112
  desc "Protect system files"
98
113
  task :protect, :except => { :no_release => true } do
99
- run "chmod 440 #{latest_release}/wp-config.php*"
114
+ run "#{try_sudo} chmod 440 #{latest_release}/wp-config.php*"
100
115
  end
101
116
  end
102
117
 
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-ash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.6
4
+ version: 1.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - August Ash
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-30 00:00:00.000000000 Z
11
+ date: 2013-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 2.12.0
19
+ version: 2.15.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 2.12.0
26
+ version: 2.15.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: capistrano-ext
29
29
  requirement: !ruby/object:Gem::Requirement