capistrano-exts 1.2.0 → 1.3.0
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.
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'capistrano'
|
2
|
+
require 'capistrano/errors'
|
2
3
|
require 'capistrano-exts/receipts/deploy'
|
3
4
|
require 'capistrano-exts/receipts/mysql'
|
4
5
|
|
@@ -62,7 +63,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
62
63
|
run <<-CMD
|
63
64
|
#{try_sudo} cp #{fetch :latest_release}/public/.htaccess.default #{fetch :shared_path}/config/htaccess.txt
|
64
65
|
CMD
|
65
|
-
rescue
|
66
|
+
rescue Capistrano::CommandError
|
66
67
|
run <<-CMD
|
67
68
|
#{try_sudo} touch #{fetch :shared_path}/config/htaccess.txt
|
68
69
|
CMD
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'capistrano'
|
2
|
+
require 'capistrano/errors'
|
2
3
|
require 'capistrano-exts/receipts/deploy'
|
3
4
|
|
4
5
|
# Verify that Capistrano is version 2
|
@@ -31,7 +32,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
31
32
|
run <<-CMD
|
32
33
|
#{try_sudo} bzip2 -9 '#{MYSQL_DB_BACKUP_PATH}'
|
33
34
|
CMD
|
34
|
-
rescue
|
35
|
+
rescue Capistrano::CommandError
|
35
36
|
puts "WARNING: The database doesn't exist."
|
36
37
|
end
|
37
38
|
else
|
@@ -54,7 +55,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
54
55
|
drop --force \
|
55
56
|
'#{mysql_db_name}'
|
56
57
|
CMD
|
57
|
-
rescue
|
58
|
+
rescue Capistrano::CommandError
|
58
59
|
puts "WARNING: The database doesn't exist or you do not have permissions to drop it, trying to drop all tables inside of it."
|
59
60
|
begin
|
60
61
|
run <<-CMD
|
@@ -70,7 +71,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
70
71
|
--password='#{mysql_credentials[:pass]}' \
|
71
72
|
'#{mysql_db_name}'
|
72
73
|
CMD
|
73
|
-
rescue
|
74
|
+
rescue Capistrano::CommandError
|
74
75
|
puts "WARNING: The database doesn't exist or you do not have permissions to drop it."
|
75
76
|
end
|
76
77
|
end
|
@@ -112,15 +113,13 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
112
113
|
CMD
|
113
114
|
|
114
115
|
set :mysql_credentials, {
|
115
|
-
|
116
|
-
# database server
|
117
|
-
host: 'localhost',
|
116
|
+
host: find_servers(:roles => :db, primary: true).first.to_s.gsub(/^(.*@)?([^:]*)(:.*)?$/, '\2'),
|
118
117
|
user: mysql_db_user,
|
119
118
|
pass: fetch(:mysql_db_pass),
|
120
119
|
}
|
121
120
|
|
122
121
|
find_and_execute_task("mysql:write_credentials")
|
123
|
-
rescue
|
122
|
+
rescue Capistrano::CommandError
|
124
123
|
puts "WARNING: The user #{application} already exists or you do not have permissions to create it."
|
125
124
|
find_and_execute_task("mysql:print_credentials")
|
126
125
|
end
|
@@ -141,7 +140,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
141
140
|
--password='#{mysql_credentials[:pass]}' \
|
142
141
|
create '#{mysql_db_name}'
|
143
142
|
CMD
|
144
|
-
rescue
|
143
|
+
rescue Capistrano::CommandError
|
145
144
|
puts "WARNING: The database already exists or you do not have permissions to create it."
|
146
145
|
end
|
147
146
|
end
|
@@ -226,9 +225,20 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
226
225
|
|
227
226
|
desc "[internal] write database credentials"
|
228
227
|
task :write_credentials do
|
229
|
-
mysql_credentials_file
|
230
|
-
|
231
|
-
|
228
|
+
unless exists?(:mysql_credentials_file) and remote_file_exists?(fetch :mysql_credentials_file)
|
229
|
+
mysql_credentials_file = fetch :mysql_credentials_file
|
230
|
+
random_file = random_tmp_file(mysql_credentials_formatted(fetch :mysql_credentials))
|
231
|
+
put mysql_credentials_formatted(fetch :mysql_credentials), random_file
|
232
|
+
|
233
|
+
begin
|
234
|
+
run <<-CMD
|
235
|
+
#{try_sudo} cp #{random_file} #{mysql_credentials_file}; \
|
236
|
+
#{try_sudo} rm -f #{random_file}
|
237
|
+
CMD
|
238
|
+
rescue Capistrano::CommandError
|
239
|
+
puts "WARNING: Apparently you do not have permissions to write to #{mysql_credentials_file}."
|
240
|
+
find_and_execute_task("mysql:print_credentials")
|
241
|
+
end
|
232
242
|
else
|
233
243
|
puts "WARNING: mysql_credentials_file is not defined in config.rb you have to manually copy the following info into a credential file and define it"
|
234
244
|
find_and_execute_task("mysql:print_credentials")
|
@@ -237,14 +247,14 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
237
247
|
|
238
248
|
desc "Get Mysql credentials"
|
239
249
|
task :credentials, :roles => :app, :except => { :no_release => true } do
|
240
|
-
mysql_credentials_file = fetch :mysql_credentials_file
|
241
|
-
|
242
250
|
unless exists?(:mysql_credentials)
|
243
251
|
# We haven't got the credentials yet, look for them
|
244
|
-
if exists?(:mysql_credentials_file) and remote_file_exists?(mysql_credentials_file)
|
252
|
+
if exists?(:mysql_credentials_file) and remote_file_exists?(fetch :mysql_credentials_file)
|
253
|
+
mysql_credentials_file = fetch :mysql_credentials_file
|
254
|
+
|
245
255
|
begin
|
246
256
|
set :mysql_credentials_file_contents, capture("cat #{mysql_credentials_file}")
|
247
|
-
rescue
|
257
|
+
rescue Capistrano::CommandError
|
248
258
|
set :mysql_credentials, false
|
249
259
|
end
|
250
260
|
|
@@ -293,10 +303,20 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
293
303
|
|
294
304
|
desc "[internal] write database root credentials"
|
295
305
|
task :write_root_credentials do
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
306
|
+
unless exists?(:mysql_root_credentials_file) and remote_file_exists?(fetch :mysql_root_credentials_file)
|
307
|
+
mysql_root_credentials_file = fetch :mysql_root_credentials_file
|
308
|
+
random_file = random_tmp_file(mysql_root_credentials_formatted(fetch :mysql_root_credentials))
|
309
|
+
put mysql_root_credentials_formatted(fetch :mysql_root_credentials), random_file
|
310
|
+
|
311
|
+
begin
|
312
|
+
run <<-CMD
|
313
|
+
#{try_sudo} cp #{random_file} #{mysql_root_credentials_file}; \
|
314
|
+
#{try_sudo} rm -f #{random_file}
|
315
|
+
CMD
|
316
|
+
rescue Capistrano::CommandError
|
317
|
+
puts "WARNING: Apparently you do not have permissions to write to #{mysql_root_credentials_file}."
|
318
|
+
find_and_execute_task("mysql:print_root_credentials")
|
319
|
+
end
|
300
320
|
else
|
301
321
|
puts "WARNING: mysql_root_credentials_file is not defined in config.rb you have to manually copy the following info into a credential file and define it"
|
302
322
|
find_and_execute_task("mysql:print_root_credentials")
|
@@ -305,14 +325,14 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
305
325
|
|
306
326
|
desc "Get Mysql root_credentials"
|
307
327
|
task :root_credentials, :roles => :app, :except => { :no_release => true } do
|
308
|
-
mysql_root_credentials_file = fetch :mysql_root_credentials_file
|
309
|
-
|
310
328
|
unless exists?(:mysql_root_credentials)
|
311
329
|
# We haven't got the root_credentials yet, look for them
|
312
|
-
if exists?(:mysql_root_credentials_file) and remote_file_exists?(mysql_root_credentials_file)
|
330
|
+
if exists?(:mysql_root_credentials_file) and remote_file_exists?(fetch :mysql_root_credentials_file)
|
331
|
+
mysql_root_credentials_file = fetch :mysql_root_credentials_file
|
332
|
+
|
313
333
|
begin
|
314
334
|
set :mysql_root_credentials_file_contents, capture("cat #{mysql_root_credentials_file}")
|
315
|
-
rescue
|
335
|
+
rescue Capistrano::CommandError
|
316
336
|
set :mysql_root_credentials, false
|
317
337
|
end
|
318
338
|
|
@@ -49,7 +49,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
49
49
|
unencrypted_contents = Array.new
|
50
50
|
|
51
51
|
web_server_auth_credentials.each do |credentials|
|
52
|
-
if credentials[:password].
|
52
|
+
if credentials[:password].respond_to?(:call)
|
53
53
|
password = credentials[:password].call
|
54
54
|
else
|
55
55
|
password = credentials[:password]
|
@@ -71,7 +71,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
71
71
|
|
72
72
|
desc "[internal] Write authentification file"
|
73
73
|
task :write_web_server_auth_file do
|
74
|
-
if exists?(:web_server_auth_file)
|
74
|
+
if exists?(:web_server_auth_file) and not remote_file_exists?(fetch :web_server_auth_file)
|
75
75
|
web_server_auth_file = fetch :web_server_auth_file
|
76
76
|
web_server_auth_file_contents = fetch :web_server_auth_file_contents
|
77
77
|
web_server_auth_file_unencrypted_contents = fetch :web_server_auth_file_unencrypted_contents
|
@@ -84,11 +84,18 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
84
84
|
put web_server_auth_file_contents, random_file
|
85
85
|
|
86
86
|
run <<-CMD
|
87
|
-
#{try_sudo}
|
87
|
+
#{try_sudo} cp #{random_file} #{web_server_auth_file}; \
|
88
|
+
#{try_sudo} rm -f #{random_file}
|
88
89
|
CMD
|
89
90
|
|
90
91
|
# Store the unencrypted version of the contents
|
91
|
-
put web_server_auth_file_unencrypted_contents,
|
92
|
+
put web_server_auth_file_unencrypted_contents, random_file
|
93
|
+
|
94
|
+
run <<-CMD
|
95
|
+
#{try_sudo} cp #{random_file} #{fetch :deploy_to}/.http_basic_auth; \
|
96
|
+
#{try_sudo} rm -f #{random_file}
|
97
|
+
CMD
|
98
|
+
|
92
99
|
puts "This site uses http basic auth, the credentials are:"
|
93
100
|
puts web_server_auth_file_unencrypted_contents
|
94
101
|
end
|
@@ -112,7 +119,8 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
112
119
|
put web_conf_contents, random_file
|
113
120
|
|
114
121
|
run <<-CMD
|
115
|
-
#{try_sudo}
|
122
|
+
#{try_sudo} cp #{random_file} #{web_conf_file}; \
|
123
|
+
#{try_sudo} rm -f #{random_file}
|
116
124
|
CMD
|
117
125
|
end
|
118
126
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-exts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-09-04 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
16
|
-
requirement: &
|
16
|
+
requirement: &2157099700 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.8.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2157099700
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: i18n
|
27
|
-
requirement: &
|
27
|
+
requirement: &2157099200 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.6.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2157099200
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &2157098740 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.1.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2157098740
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: guard
|
49
|
-
requirement: &
|
49
|
+
requirement: &2157098280 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.6.2
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2157098280
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: guard-bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &2157097820 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 0.1.3
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2157097820
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: guard-rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &2157097360 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.4.3
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2157097360
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rspec
|
82
|
-
requirement: &
|
82
|
+
requirement: &2157096900 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: 2.6.0
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2157096900
|
91
91
|
description: Handy extensions for Capistrano
|
92
92
|
email:
|
93
93
|
- wael.nasreddine@gmail.com
|