capistrano-ash 1.3.4 → 1.3.5
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 +8 -8
- data/VERSION +1 -1
- data/lib/ash/base.rb +157 -35
- data/lib/ash/common.rb +2 -2
- data/lib/ash/drupal.rb +8 -2
- data/lib/ash/magento.rb +52 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
N2Q3MzdiNTQ0ZTAyOWIzMzJiNzUyODE4NTU1NDhkNDllNmFjNTRkOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MWEyMmFmOWVmM2ZlODcyYzQ5YTJlZTA4ZTFjODhkYTA4NDBmODliNQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OGE4ZjljMDdkMTAzZjk4YzQ1NWY3YTk0MzhlOTM3NGRiMDJhYmExZTc4YTQx
|
10
|
+
ZTMwYzQzODY2NTE4NzNmNzQ2NWUxNmUyOTQ1NTM5MzI4MTc3YmQ4YjIzZmM0
|
11
|
+
MmY2ZDQ2OWZkYzZhOGY3YjA5YjcxOTQ2MGEzNWZjYTVhNmM2NzE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODBiOTRiNjUyY2FlMTlhNzA3YzBkMzJlNzM5MzZkMzk3NTJmODE5YWYzOTY4
|
14
|
+
OWI5ZjA3MDU5Yzc4MDVkMzA4MTE4MTAwODAyMGIzYWNmNmU2NzdkZWMxMmQ2
|
15
|
+
ZjA1NTFhODM1NDUzOTllYzE0NTBmODY0MDNiNjJiMjI5NDlmZjU=
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.5
|
data/lib/ash/base.rb
CHANGED
@@ -25,6 +25,7 @@ configuration.load do
|
|
25
25
|
after "deploy:setup_shared", "deploy:setup_backup"
|
26
26
|
after "deploy:finalize_update", "ash:htaccess"
|
27
27
|
after "deploy", "deploy:cleanup"
|
28
|
+
after "deploy", "seo:robots"
|
28
29
|
|
29
30
|
# --------------------------------------------
|
30
31
|
# Default variables
|
@@ -38,7 +39,7 @@ configuration.load do
|
|
38
39
|
set :dbpass, proc{Capistrano::CLI.password_prompt("Database password for '#{dbuser}':")}
|
39
40
|
set :dbname, proc{text_prompt("Database name: ")}
|
40
41
|
_cset :mysqldump, "mysqldump"
|
41
|
-
_cset :dump_options, "--single-transaction --create-options --quick"
|
42
|
+
_cset :dump_options, "--single-transaction --create-options --quick --triggers --routines"
|
42
43
|
|
43
44
|
# Source Control
|
44
45
|
set :group_writable, false
|
@@ -53,7 +54,7 @@ configuration.load do
|
|
53
54
|
set :copy_strategy, :checkout
|
54
55
|
set :copy_compression, :bz2
|
55
56
|
set :copy_exclude, [".svn", ".git*", ".DS_Store", "*.sample", "LICENSE*", "Capfile",
|
56
|
-
"RELEASE*", "*.rb", "*.sql", "nbproject", "_template"]
|
57
|
+
"RELEASE*", "config/deploy", "*.rb", "*.sql", "nbproject", "_template"]
|
57
58
|
|
58
59
|
# phpMyAdmin version
|
59
60
|
set :pma_version, "3.4.5"
|
@@ -137,29 +138,44 @@ configuration.load do
|
|
137
138
|
will use sudo to clean up the old releases, but if sudo is not available \
|
138
139
|
for your environment, set the :use_sudo variable to false instead. \
|
139
140
|
|
140
|
-
|
141
|
+
OVERRIDES:
|
142
|
+
+ set/reset file and directory permissions
|
143
|
+
+ remove old releases per host instead of assuming the releases are \
|
144
|
+
the same for every host
|
145
|
+
|
146
|
+
see http://blog.perplexedlabs.com/2010/09/08/improved-deploycleanup-for-capistrano/
|
141
147
|
DESC
|
142
148
|
task :cleanup, :except => { :no_release => true } do
|
143
149
|
count = fetch(:keep_releases, 5).to_i
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
150
|
+
cmd = "ls -xt #{releases_path}"
|
151
|
+
run cmd do |channel, stream, data|
|
152
|
+
local_releases = data.split.reverse
|
153
|
+
if count >= local_releases.length
|
154
|
+
logger.important "no old releases to clean up on #{channel[:server]}"
|
155
|
+
else
|
156
|
+
logger.info "keeping #{count} of #{local_releases.length} deployed releases on #{channel[:server]}"
|
157
|
+
|
158
|
+
directories = (local_releases - local_releases.last(count)).map { |release|
|
159
|
+
File.join(releases_path, release)
|
160
|
+
}.join(" ")
|
161
|
+
|
162
|
+
directories.split(" ").each do |dir|
|
163
|
+
begin
|
164
|
+
# adding a chown -R method to fix permissions on the directory
|
165
|
+
# this should help with issues related to permission denied
|
166
|
+
# as in issues #28 and #30
|
167
|
+
run "#{sudo} chown -R #{user}:#{user} #{dir}" if remote_dir_exists?(dir)
|
168
|
+
|
169
|
+
set_perms_dirs(dir)
|
170
|
+
set_perms_files(dir)
|
171
|
+
rescue Exception => e
|
172
|
+
logger.important e.message
|
173
|
+
logger.info "Moving on to the next directory..."
|
174
|
+
end
|
175
|
+
end
|
161
176
|
|
162
|
-
|
177
|
+
run "#{sudo} rm -rf #{directories}", :hosts => [channel[:server]]
|
178
|
+
end
|
163
179
|
end
|
164
180
|
end
|
165
181
|
end
|
@@ -200,6 +216,39 @@ configuration.load do
|
|
200
216
|
end
|
201
217
|
end
|
202
218
|
|
219
|
+
# --------------------------------------------
|
220
|
+
# SEO - robots.txt files
|
221
|
+
# --------------------------------------------
|
222
|
+
namespace :seo do
|
223
|
+
desc <<-DESC
|
224
|
+
Creates a robots.txt appropriate for the environment
|
225
|
+
|
226
|
+
staging => block all robots from indexing the site
|
227
|
+
production => allow robots to index the site
|
228
|
+
DESC
|
229
|
+
task :robots, :roles => :web do
|
230
|
+
case "#{stage}"
|
231
|
+
when 'staging'
|
232
|
+
# block all robots from indexing anything
|
233
|
+
robots_txt = <<-EOF
|
234
|
+
User-agent: *
|
235
|
+
Disallow: /
|
236
|
+
EOF
|
237
|
+
when 'production'
|
238
|
+
# allow all robots to index anything
|
239
|
+
robots_txt = <<-EOF
|
240
|
+
User-agent: *
|
241
|
+
Disallow:
|
242
|
+
EOF
|
243
|
+
else
|
244
|
+
logger.important "SKIPPING creation of robots.txt because the #{stage} stage was unanticipated. You should override the `seo:robots` task with your own implementation."
|
245
|
+
end
|
246
|
+
|
247
|
+
# echo the file out into the root of the latest_release directory
|
248
|
+
put robots_txt, "#{latest_release}/robots.txt"
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
203
252
|
# --------------------------------------------
|
204
253
|
# PHP tasks
|
205
254
|
# --------------------------------------------
|
@@ -217,6 +266,24 @@ configuration.load do
|
|
217
266
|
end
|
218
267
|
end
|
219
268
|
|
269
|
+
# --------------------------------------------
|
270
|
+
# NGINX tasks
|
271
|
+
# --------------------------------------------
|
272
|
+
namespace :nginx do
|
273
|
+
%w(start stop restart status).each do |cmd|
|
274
|
+
desc "[internal] - #{cmd.upcase} nginx and php-fpm"
|
275
|
+
task cmd.to_sym, :roles => :web do
|
276
|
+
|
277
|
+
nginx_cmd = fetch(:nginx_init_command, "/etc/init.d/nginx")
|
278
|
+
phpfpm_cmd = fetch(:phpfpm_init_command, "/etc/init.d/php-fpm")
|
279
|
+
|
280
|
+
run "#{sudo} #{nginx_cmd} #{cmd}"
|
281
|
+
run "#{sudo} #{phpfpm_cmd} #{cmd}"
|
282
|
+
end
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
286
|
+
|
220
287
|
# --------------------------------------------
|
221
288
|
# Remote/Local database migration tasks
|
222
289
|
# --------------------------------------------
|
@@ -348,7 +415,7 @@ configuration.load do
|
|
348
415
|
You can specify which files or directories to exclude from being \
|
349
416
|
backed up (i.e., log files, sessions, cache) by setting the \
|
350
417
|
:backup_exclude variable
|
351
|
-
set(:backup_exclude) { [ "var/", "tmp/", logs/debug.log ] }
|
418
|
+
set(:backup_exclude) { [ "var/", "tmp/", "logs/debug.log" ] }
|
352
419
|
DESC
|
353
420
|
task :web, :roles => :web do
|
354
421
|
if previous_release
|
@@ -369,17 +436,22 @@ configuration.load do
|
|
369
436
|
# --------------------------
|
370
437
|
# SET/RESET PERMISSIONS
|
371
438
|
# --------------------------
|
372
|
-
|
373
|
-
|
439
|
+
begin
|
440
|
+
set_perms_dirs("#{tmp_backups_path}/#{release_name}", 755)
|
441
|
+
set_perms_files("#{tmp_backups_path}/#{release_name}", 644)
|
374
442
|
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
443
|
+
# create the tarball of the previous release
|
444
|
+
set :archive_name, "release_B4_#{release_name}.tar.gz"
|
445
|
+
logger.debug "Creating a Tarball of the previous release in #{backups_path}/#{archive_name}"
|
446
|
+
run "cd #{tmp_backups_path} && tar -cvpf - ./#{release_name}/ | gzip -c --best > #{backups_path}/#{archive_name}"
|
379
447
|
|
380
|
-
|
381
|
-
|
382
|
-
|
448
|
+
# remove the the temporary copy
|
449
|
+
logger.debug "Removing the temporary copy"
|
450
|
+
run "rm -rf #{tmp_backups_path}/#{release_name}"
|
451
|
+
rescue Exception => e
|
452
|
+
logger.debug e.message
|
453
|
+
logger.info "Error setting permissions on backed up files but continuing on..."
|
454
|
+
end
|
383
455
|
else
|
384
456
|
logger.important "no previous release to backup; backup of files skipped"
|
385
457
|
end
|
@@ -392,8 +464,13 @@ configuration.load do
|
|
392
464
|
dump_options = fetch(:dump_options, "--single-transaction --create-options --quick")
|
393
465
|
|
394
466
|
puts "Backing up the database now and putting dump file in the previous release directory"
|
467
|
+
|
468
|
+
# create the temporary copy for the release directory
|
469
|
+
# which we'll tarball in the backup:web task
|
470
|
+
run "mkdir -p #{tmp_backups_path}/#{release_name}"
|
471
|
+
|
395
472
|
# define the filename (include the current_path so the dump file will be within the directory)
|
396
|
-
filename = "#{
|
473
|
+
filename = "#{tmp_backups_path}/#{release_name}/#{dbname}_dump-#{Time.now.to_s.gsub(/ /, "_")}.sql.gz"
|
397
474
|
# dump the database for the proper environment
|
398
475
|
run "#{mysqldump} #{dump_options} -u #{dbuser} -p #{dbname} | gzip -c --best > #{filename}" do |ch, stream, out|
|
399
476
|
ch.send_data "#{dbpass}\n" if out =~ /^Enter password:/
|
@@ -423,11 +500,11 @@ configuration.load do
|
|
423
500
|
|
424
501
|
# fix permissions on the the files and directories before removing them
|
425
502
|
archives.split(" ").each do |backup|
|
426
|
-
set_perms_dirs("#{backup}", 755) if
|
427
|
-
set_perms_files("#{backup}", 644)
|
503
|
+
set_perms_dirs("#{backup}", 755) if remote_dir_exists?(backup)
|
504
|
+
set_perms_files("#{backup}", 644) if remote_dir_exists?(backup)
|
428
505
|
end
|
429
506
|
|
430
|
-
|
507
|
+
run "rm -rf #{archives}"
|
431
508
|
rescue Exception => e
|
432
509
|
logger.important e.message
|
433
510
|
end
|
@@ -544,6 +621,51 @@ configuration.load do
|
|
544
621
|
end
|
545
622
|
end
|
546
623
|
|
624
|
+
# --------------------------------------------
|
625
|
+
# Track changes made to remote release file directory via a throw away git repo
|
626
|
+
# --------------------------------------------
|
627
|
+
namespace :watchdog do
|
628
|
+
desc "Track changes made to remote release file directory via a throw away git repo"
|
629
|
+
task :default, :roles => :web do
|
630
|
+
watchdog.init_git_repo
|
631
|
+
watchdog.init_git_ignore
|
632
|
+
watchdog.commit
|
633
|
+
watchdog.check_status
|
634
|
+
end
|
635
|
+
|
636
|
+
desc <<-DESC
|
637
|
+
[internal] initialize a git repo in the latest release directory to track changes anybody makes to the filesystem
|
638
|
+
DESC
|
639
|
+
task :init_git_repo, :roles => :web do
|
640
|
+
logger.important "Creating a local git repo in #{latest_release} to track changes done outside of our git-flow process"
|
641
|
+
run "cd #{latest_release} && git init ." unless remote_dir_exists?("#{latest_release}/.git")
|
642
|
+
end
|
643
|
+
|
644
|
+
desc <<-DESC
|
645
|
+
[internal] copy the .gitignore file from the cached-copy directory to only commit what we really care about
|
646
|
+
DESC
|
647
|
+
task :init_git_ignore, :roles => :web do
|
648
|
+
logger.important "Copying the .gitignore file from the cached-copy directory"
|
649
|
+
run "ln -s #{shared_path}/cached-copy/.gitignore #{latest_release}/.gitignore"
|
650
|
+
end
|
651
|
+
|
652
|
+
desc <<-DESC
|
653
|
+
[internal] Adds and commits the files in the latest release directory
|
654
|
+
DESC
|
655
|
+
task :commit, :roles => :web do
|
656
|
+
logger.important "Adding and committing the files in the latest release directory"
|
657
|
+
run "cd #{latest_release} && git add . && git commit -m 'Keeping track of changes done outside of AAI git-flow'"
|
658
|
+
end
|
659
|
+
|
660
|
+
desc <<-DESC
|
661
|
+
[internal] Adds and commits the files in the latest release directory
|
662
|
+
DESC
|
663
|
+
task :check_status, :roles => :web do
|
664
|
+
logger.important "Checking status of git repo for any changes in watched files/directories"
|
665
|
+
run "cd #{latest_release} && git status"
|
666
|
+
end
|
667
|
+
|
668
|
+
end
|
547
669
|
|
548
670
|
# --------------------------------------------
|
549
671
|
# Remote File/Directory test tasks
|
data/lib/ash/common.rb
CHANGED
@@ -44,10 +44,10 @@ 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
|
-
|
47
|
+
run "find #{dir_path} -type f -print0 | xargs -0 #{sudo} chmod #{perm}" if remote_dir_exists?(dir_path)
|
48
48
|
end
|
49
49
|
|
50
50
|
# set the permissions for directories recurisvely from the starting directory (dir_path)
|
51
51
|
def set_perms_dirs(dir_path, perm = 755)
|
52
|
-
|
52
|
+
run "find #{dir_path} -type d -print0 | xargs -0 #{sudo} chmod #{perm}" if remote_dir_exists?(dir_path)
|
53
53
|
end
|
data/lib/ash/drupal.rb
CHANGED
@@ -15,6 +15,7 @@ configuration.load do
|
|
15
15
|
#
|
16
16
|
# --------------------------------------------
|
17
17
|
depend :remote, :command, 'drush'
|
18
|
+
depend :remote, :command, 'rsync'
|
18
19
|
|
19
20
|
# --------------------------------------------
|
20
21
|
# Setting defaults
|
@@ -57,7 +58,7 @@ configuration.load do
|
|
57
58
|
desc "Setup local files necessary for deployment"
|
58
59
|
task :setup_local do
|
59
60
|
# attempt to create files needed for proper deployment
|
60
|
-
system("cp .htaccess htaccess.dist")
|
61
|
+
system("cp .htaccess htaccess.dist") unless local_file_exists?("htaccess.dist")
|
61
62
|
end
|
62
63
|
|
63
64
|
desc "Setup shared application directories and permissions after initial setup"
|
@@ -130,9 +131,14 @@ configuration.load do
|
|
130
131
|
task :db, :roles => :db do
|
131
132
|
if previous_release
|
132
133
|
puts "Backing up the database now and putting dump file in the previous release directory"
|
134
|
+
|
135
|
+
# create the temporary copy for the release directory
|
136
|
+
# which we'll tarball in the backup:web task
|
137
|
+
run "mkdir -p #{tmp_backups_path}/#{release_name}"
|
138
|
+
|
133
139
|
multisites.each_pair do |folder, url|
|
134
140
|
# define the filename (include the current_path so the dump file will be within the directory)
|
135
|
-
filename = "#{
|
141
|
+
filename = "#{tmp_backups_path}/#{release_name}/#{folder}_dump-#{Time.now.to_s.gsub(/ /, "_")}.sql.gz"
|
136
142
|
# dump the database for the proper environment
|
137
143
|
run "#{drush_bin} -l #{url} -r #{current_path} sql-dump | gzip -c --best > #{filename}"
|
138
144
|
end
|
data/lib/ash/magento.rb
CHANGED
@@ -8,11 +8,26 @@ configuration = Capistrano::Configuration.respond_to?(:instance) ?
|
|
8
8
|
Capistrano.configuration(:must_exist)
|
9
9
|
|
10
10
|
configuration.load do
|
11
|
+
|
12
|
+
# --------------------------------------------
|
13
|
+
# Deployment dependencies
|
14
|
+
#
|
15
|
+
# $ cap <stage> deploy:check
|
16
|
+
#
|
17
|
+
# --------------------------------------------
|
18
|
+
depend :remote, :command, 'rsync'
|
19
|
+
|
20
|
+
# --------------------------------------------
|
21
|
+
# Magento Variables
|
22
|
+
# --------------------------------------------
|
23
|
+
set :enable_modules, []
|
24
|
+
set :disable_modules, %w(Ash_Bar)
|
25
|
+
|
11
26
|
# --------------------------------------------
|
12
27
|
# Task chains
|
13
28
|
# --------------------------------------------
|
14
29
|
after "deploy:setup", "deploy:setup_local"
|
15
|
-
# after "deploy:setup_shared", "pma:install"
|
30
|
+
# after "deploy:setup_shared", "pma:install"
|
16
31
|
after "deploy:finalize_update", "magento:activate_config"
|
17
32
|
# after "deploy:create_symlink", "magento:symlink"
|
18
33
|
|
@@ -20,6 +35,8 @@ configuration.load do
|
|
20
35
|
# before/after callbacks not firing for 'deploy:symlink'
|
21
36
|
# or 'deploy:create_symlink'
|
22
37
|
after "deploy", "magento:symlink"
|
38
|
+
after "magento:symlink", "magento:enable_mods"
|
39
|
+
after "magento:enable_mods", "magento:disable_mods"
|
23
40
|
after "magento:symlink", "magento:purge_cache"
|
24
41
|
before "magento:purge_cache", "compass"
|
25
42
|
|
@@ -30,9 +47,11 @@ configuration.load do
|
|
30
47
|
desc "Setup local files necessary for deployment"
|
31
48
|
task :setup_local do
|
32
49
|
# attempt to create files needed for proper deployment
|
33
|
-
system("cp .htaccess htaccess.dist")
|
34
|
-
|
35
|
-
|
50
|
+
system("cp .htaccess htaccess.dist") unless local_file_exists?("htaccess.dist")
|
51
|
+
stages = fetch(:stages, %w(staging production))
|
52
|
+
stages.each do |env|
|
53
|
+
system("cp app/etc/local.xml app/etc/local.xml.#{env}") unless local_file_exists?("app/etc/local.xml.#{env}")
|
54
|
+
end
|
36
55
|
end
|
37
56
|
|
38
57
|
desc "Setup shared application directories and permissions after initial setup"
|
@@ -55,8 +74,8 @@ configuration.load do
|
|
55
74
|
desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
|
56
75
|
task :finalize_update, :roles => :web, :except => { :no_release => true } do
|
57
76
|
# synchronize media directory with shared data
|
58
|
-
|
59
|
-
|
77
|
+
run "rsync -rltDvzog #{latest_release}/media/ #{shared_path}/media/"
|
78
|
+
run "#{sudo} chmod -R 777 #{shared_path}/media/"
|
60
79
|
|
61
80
|
# remove directories that will be shared
|
62
81
|
run "rm -Rf #{latest_release}/includes"
|
@@ -108,7 +127,7 @@ configuration.load do
|
|
108
127
|
|
109
128
|
desc "Purge Magento cache directory"
|
110
129
|
task :purge_cache, :roles => :web, :except => { :no_release => true } do
|
111
|
-
|
130
|
+
run "#{sudo} rm -Rf #{shared_path}/var/cache/*"
|
112
131
|
end
|
113
132
|
|
114
133
|
desc "Watch Magento system log"
|
@@ -131,8 +150,9 @@ configuration.load do
|
|
131
150
|
|
132
151
|
desc "Clear the Magento Cache"
|
133
152
|
task :cc, :roles => [:web, :app], :except => { :no_release => true } do
|
153
|
+
run "#{sudo} chown -R #{user}:#{user} #{shared_path}/var/*"
|
134
154
|
magento.purge_cache
|
135
|
-
|
155
|
+
run "#{sudo} rm -rf #{shared_path}/var/full_page_cache/*"
|
136
156
|
end
|
137
157
|
|
138
158
|
desc "Enable display errors"
|
@@ -140,6 +160,30 @@ configuration.load do
|
|
140
160
|
run "perl -pi -e 's/#ini_set/ini_set/g' #{latest_release}/index.php"
|
141
161
|
end
|
142
162
|
|
163
|
+
desc "Enable Modules"
|
164
|
+
task :enable_mods, :roles => :web, :except => { :no_release => true } do
|
165
|
+
modules = fetch(:enable_modules, [])
|
166
|
+
# enable specific modules
|
167
|
+
modules.each do |name|
|
168
|
+
mod_name = name.include?('.xml') ? "#{name}" : "#{name}.xml"
|
169
|
+
mod_path = "#{latest_release}/app/etc/modules/#{mod_path}"
|
170
|
+
# enable the module
|
171
|
+
run "perl -pi -e 's/false/true/g' #{mod_path}" if remote_file_exists?("#{mod_path}")
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
desc "Disable Modules"
|
176
|
+
task :disable_mods, :roles => :web, :except => { :no_release => true } do
|
177
|
+
modules = fetch(:disable_modules, [])
|
178
|
+
|
179
|
+
# enable specific modules
|
180
|
+
modules.each do |name|
|
181
|
+
mod_name = name.include?('.xml') ? "#{name}" : "#{name}.xml"
|
182
|
+
mod_path = "#{latest_release}/app/etc/modules/#{mod_path}"
|
183
|
+
# disable the module
|
184
|
+
run "perl -pi -e 's/true/false/g' #{mod_path}" if remote_file_exists?("#{mod_path}")
|
185
|
+
end
|
186
|
+
end
|
143
187
|
end
|
144
188
|
|
145
189
|
# --------------------------------------------
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-ash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.5
|
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-
|
11
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|