capistrano-exts 1.3.6 → 1.4.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.
- data/README.md +4 -4
- data/examples/php_fpm/deploy/development.rb +20 -16
- data/examples/php_fpm/deploy/production.rb +20 -16
- data/examples/php_fpm/deploy/staging.rb +20 -16
- data/examples/rails_passenger/deploy/development.rb +21 -16
- data/examples/rails_passenger/deploy/production.rb +21 -16
- data/examples/rails_passenger/deploy/staging.rb +21 -16
- data/examples/rails_reverse_proxy/deploy/development.rb +21 -16
- data/examples/rails_reverse_proxy/deploy/production.rb +21 -3
- data/examples/rails_reverse_proxy/deploy/staging.rb +21 -3
- data/lib/capistrano-exts/receipts/contao.rb +2 -21
- data/lib/capistrano-exts/receipts/contents.rb +80 -0
- data/lib/capistrano-exts/receipts/deploy.rb +1 -0
- data/lib/capistrano-exts/receipts/functions.rb +2 -2
- data/lib/capistrano-exts/receipts/multistage.rb +3 -3
- data/lib/capistrano-exts/receipts/servers.rb +5 -5
- data/lib/capistrano-exts/receipts/servers/db_server.rb +3 -3
- data/lib/capistrano-exts/receipts/servers/web_server.rb +3 -3
- data/lib/capistrano-exts/templates/multistage.rb +21 -17
- data/lib/capistrano-exts/version.rb +2 -2
- metadata +17 -16
data/README.md
CHANGED
@@ -17,7 +17,7 @@ gem install capistrano-exts
|
|
17
17
|
or add it to your Gemfile
|
18
18
|
|
19
19
|
```ruby
|
20
|
-
gem 'capistrano-exts', '>=1.
|
20
|
+
gem 'capistrano-exts', '>=1.4.0'
|
21
21
|
```
|
22
22
|
|
23
23
|
Setup
|
@@ -37,14 +37,14 @@ set :stages, [:development, :staging, :production]
|
|
37
37
|
set :default_stage, :development
|
38
38
|
|
39
39
|
# Capistrano extensions
|
40
|
-
# Valid extensions: :multistage, :git, :deploy, :mysql, :rails, :contao, :god, :unicorn, :servers
|
40
|
+
# Valid extensions: :multistage, :git, :deploy, :mysql, :rails, :contao, :contents, :god, :unicorn, :servers
|
41
41
|
set :capistrano_extensions, [:multistage, :git, :deploy, :mysql, :rails, :servers]
|
42
42
|
```
|
43
43
|
|
44
44
|
Then run the command
|
45
45
|
|
46
46
|
```bash
|
47
|
-
$ cap multistage:
|
47
|
+
$ cap multistage:setup
|
48
48
|
```
|
49
49
|
|
50
50
|
Then edit the files found at __config/deploy/*.rb__, that's it you're ready..
|
@@ -55,7 +55,7 @@ Usage
|
|
55
55
|
The server can be prepared by running:
|
56
56
|
|
57
57
|
```bash
|
58
|
-
$ cap deploy:server:
|
58
|
+
$ cap deploy:server:setup deploy:setup
|
59
59
|
```
|
60
60
|
|
61
61
|
Deploy with
|
@@ -51,7 +51,24 @@ set :deploy_via, :remote_cache
|
|
51
51
|
set :keep_releases, 5
|
52
52
|
|
53
53
|
# Using RVM? Set this to the ruby version/gemset to use
|
54
|
-
set :rvm_ruby_string, "1.9.
|
54
|
+
set :rvm_ruby_string, "1.9.3"
|
55
|
+
|
56
|
+
#############
|
57
|
+
# Contents
|
58
|
+
#
|
59
|
+
|
60
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
61
|
+
# public or private but the contents are shared between all releases.
|
62
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
63
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
64
|
+
# you can use public_path/current_path/deploy_to etc...
|
65
|
+
set :contents_folder, {
|
66
|
+
'contenu' => "#{fetch :public_path}/tl_files/durable/contenu",
|
67
|
+
}
|
68
|
+
|
69
|
+
#
|
70
|
+
#
|
71
|
+
#############
|
55
72
|
|
56
73
|
#############
|
57
74
|
# Mysql
|
@@ -61,7 +78,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
61
78
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
62
79
|
|
63
80
|
# What is the database user ?
|
64
|
-
# NOTE: This is only used if you run deploy:server:
|
81
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
65
82
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
66
83
|
|
67
84
|
# Where the database credentials are stored on the server ?
|
@@ -80,7 +97,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
80
97
|
set :mysql_credentials_pass_regex_match, 1
|
81
98
|
|
82
99
|
# Where can we find root credentials ?
|
83
|
-
# NOTE: These options are only used if you run deploy:server:
|
100
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
84
101
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
85
102
|
|
86
103
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -172,19 +189,6 @@ set :php_fpm_port, '9000'
|
|
172
189
|
# => What is the path to the socket file
|
173
190
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
174
191
|
|
175
|
-
#
|
176
|
-
#
|
177
|
-
#############
|
178
|
-
|
179
|
-
#############
|
180
|
-
# Contao
|
181
|
-
#
|
182
|
-
|
183
|
-
# Where do you store contao contents ?
|
184
|
-
# The contents are stored in the shared path because they are uploaded from
|
185
|
-
# contao's admin section
|
186
|
-
set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
187
|
-
|
188
192
|
#
|
189
193
|
#
|
190
194
|
#############
|
@@ -51,7 +51,24 @@ set :deploy_via, :remote_cache
|
|
51
51
|
set :keep_releases, 5
|
52
52
|
|
53
53
|
# Using RVM? Set this to the ruby version/gemset to use
|
54
|
-
set :rvm_ruby_string, "1.9.
|
54
|
+
set :rvm_ruby_string, "1.9.3"
|
55
|
+
|
56
|
+
#############
|
57
|
+
# Contents
|
58
|
+
#
|
59
|
+
|
60
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
61
|
+
# public or private but the contents are shared between all releases.
|
62
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
63
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
64
|
+
# you can use public_path/current_path/deploy_to etc...
|
65
|
+
set :contents_folder, {
|
66
|
+
'contenu' => "#{fetch :public_path}/tl_files/durable/contenu",
|
67
|
+
}
|
68
|
+
|
69
|
+
#
|
70
|
+
#
|
71
|
+
#############
|
55
72
|
|
56
73
|
#############
|
57
74
|
# Mysql
|
@@ -61,7 +78,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
61
78
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
62
79
|
|
63
80
|
# What is the database user ?
|
64
|
-
# NOTE: This is only used if you run deploy:server:
|
81
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
65
82
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
66
83
|
|
67
84
|
# Where the database credentials are stored on the server ?
|
@@ -80,7 +97,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
80
97
|
set :mysql_credentials_pass_regex_match, 1
|
81
98
|
|
82
99
|
# Where can we find root credentials ?
|
83
|
-
# NOTE: These options are only used if you run deploy:server:
|
100
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
84
101
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
85
102
|
|
86
103
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -172,19 +189,6 @@ set :php_fpm_port, '9000'
|
|
172
189
|
# => What is the path to the socket file
|
173
190
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
174
191
|
|
175
|
-
#
|
176
|
-
#
|
177
|
-
#############
|
178
|
-
|
179
|
-
#############
|
180
|
-
# Contao
|
181
|
-
#
|
182
|
-
|
183
|
-
# Where do you store contao contents ?
|
184
|
-
# The contents are stored in the shared path because they are uploaded from
|
185
|
-
# contao's admin section
|
186
|
-
set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
187
|
-
|
188
192
|
#
|
189
193
|
#
|
190
194
|
#############
|
@@ -51,7 +51,24 @@ set :deploy_via, :remote_cache
|
|
51
51
|
set :keep_releases, 5
|
52
52
|
|
53
53
|
# Using RVM? Set this to the ruby version/gemset to use
|
54
|
-
set :rvm_ruby_string, "1.9.
|
54
|
+
set :rvm_ruby_string, "1.9.3"
|
55
|
+
|
56
|
+
#############
|
57
|
+
# Contents
|
58
|
+
#
|
59
|
+
|
60
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
61
|
+
# public or private but the contents are shared between all releases.
|
62
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
63
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
64
|
+
# you can use public_path/current_path/deploy_to etc...
|
65
|
+
set :contents_folder, {
|
66
|
+
'contenu' => "#{fetch :public_path}/tl_files/durable/contenu",
|
67
|
+
}
|
68
|
+
|
69
|
+
#
|
70
|
+
#
|
71
|
+
#############
|
55
72
|
|
56
73
|
#############
|
57
74
|
# Mysql
|
@@ -61,7 +78,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
61
78
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
62
79
|
|
63
80
|
# What is the database user ?
|
64
|
-
# NOTE: This is only used if you run deploy:server:
|
81
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
65
82
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
66
83
|
|
67
84
|
# Where the database credentials are stored on the server ?
|
@@ -80,7 +97,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
80
97
|
set :mysql_credentials_pass_regex_match, 1
|
81
98
|
|
82
99
|
# Where can we find root credentials ?
|
83
|
-
# NOTE: These options are only used if you run deploy:server:
|
100
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
84
101
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
85
102
|
|
86
103
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -172,19 +189,6 @@ set :php_fpm_port, '9000'
|
|
172
189
|
# => What is the path to the socket file
|
173
190
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
174
191
|
|
175
|
-
#
|
176
|
-
#
|
177
|
-
#############
|
178
|
-
|
179
|
-
#############
|
180
|
-
# Contao
|
181
|
-
#
|
182
|
-
|
183
|
-
# Where do you store contao contents ?
|
184
|
-
# The contents are stored in the shared path because they are uploaded from
|
185
|
-
# contao's admin section
|
186
|
-
set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
187
|
-
|
188
192
|
#
|
189
193
|
#
|
190
194
|
#############
|
@@ -51,7 +51,25 @@ set :deploy_via, :remote_cache
|
|
51
51
|
set :keep_releases, 5
|
52
52
|
|
53
53
|
# Using RVM? Set this to the ruby version/gemset to use
|
54
|
-
set :rvm_ruby_string, "1.9.
|
54
|
+
set :rvm_ruby_string, "1.9.3"
|
55
|
+
|
56
|
+
#############
|
57
|
+
# Contents
|
58
|
+
#
|
59
|
+
|
60
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
61
|
+
# public or private but the contents are shared between all releases.
|
62
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
63
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
64
|
+
# you can use public_path/current_path/deploy_to etc...
|
65
|
+
# set :contents_folder, {
|
66
|
+
# 'image' => "#{fetch :public_path}/images",
|
67
|
+
# 'video' => "#{fetch :public_path}/videos",
|
68
|
+
# }
|
69
|
+
|
70
|
+
#
|
71
|
+
#
|
72
|
+
#############
|
55
73
|
|
56
74
|
#############
|
57
75
|
# Mysql
|
@@ -61,7 +79,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
61
79
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
62
80
|
|
63
81
|
# What is the database user ?
|
64
|
-
# NOTE: This is only used if you run deploy:server:
|
82
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
65
83
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
66
84
|
|
67
85
|
# Where the database credentials are stored on the server ?
|
@@ -80,7 +98,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
80
98
|
set :mysql_credentials_pass_regex_match, 1
|
81
99
|
|
82
100
|
# Where can we find root credentials ?
|
83
|
-
# NOTE: These options are only used if you run deploy:server:
|
101
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
84
102
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
85
103
|
|
86
104
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -172,19 +190,6 @@ set :web_server_mode, :passenger
|
|
172
190
|
# => What is the path to the socket file
|
173
191
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
174
192
|
|
175
|
-
#
|
176
|
-
#
|
177
|
-
#############
|
178
|
-
|
179
|
-
#############
|
180
|
-
# Contao
|
181
|
-
#
|
182
|
-
|
183
|
-
# Where do you store contao contents ?
|
184
|
-
# The contents are stored in the shared path because they are uploaded from
|
185
|
-
# contao's admin section
|
186
|
-
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
187
|
-
|
188
193
|
#
|
189
194
|
#
|
190
195
|
#############
|
@@ -51,7 +51,25 @@ set :deploy_via, :remote_cache
|
|
51
51
|
set :keep_releases, 5
|
52
52
|
|
53
53
|
# Using RVM? Set this to the ruby version/gemset to use
|
54
|
-
set :rvm_ruby_string, "1.9.
|
54
|
+
set :rvm_ruby_string, "1.9.3"
|
55
|
+
|
56
|
+
#############
|
57
|
+
# Contents
|
58
|
+
#
|
59
|
+
|
60
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
61
|
+
# public or private but the contents are shared between all releases.
|
62
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
63
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
64
|
+
# you can use public_path/current_path/deploy_to etc...
|
65
|
+
# set :contents_folder, {
|
66
|
+
# 'image' => "#{fetch :public_path}/images",
|
67
|
+
# 'video' => "#{fetch :public_path}/videos",
|
68
|
+
# }
|
69
|
+
|
70
|
+
#
|
71
|
+
#
|
72
|
+
#############
|
55
73
|
|
56
74
|
#############
|
57
75
|
# Mysql
|
@@ -61,7 +79,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
61
79
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
62
80
|
|
63
81
|
# What is the database user ?
|
64
|
-
# NOTE: This is only used if you run deploy:server:
|
82
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
65
83
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
66
84
|
|
67
85
|
# Where the database credentials are stored on the server ?
|
@@ -80,7 +98,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
80
98
|
set :mysql_credentials_pass_regex_match, 1
|
81
99
|
|
82
100
|
# Where can we find root credentials ?
|
83
|
-
# NOTE: These options are only used if you run deploy:server:
|
101
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
84
102
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
85
103
|
|
86
104
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -172,19 +190,6 @@ set :web_server_mode, :passenger
|
|
172
190
|
# => What is the path to the socket file
|
173
191
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
174
192
|
|
175
|
-
#
|
176
|
-
#
|
177
|
-
#############
|
178
|
-
|
179
|
-
#############
|
180
|
-
# Contao
|
181
|
-
#
|
182
|
-
|
183
|
-
# Where do you store contao contents ?
|
184
|
-
# The contents are stored in the shared path because they are uploaded from
|
185
|
-
# contao's admin section
|
186
|
-
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
187
|
-
|
188
193
|
#
|
189
194
|
#
|
190
195
|
#############
|
@@ -51,7 +51,25 @@ set :deploy_via, :remote_cache
|
|
51
51
|
set :keep_releases, 5
|
52
52
|
|
53
53
|
# Using RVM? Set this to the ruby version/gemset to use
|
54
|
-
set :rvm_ruby_string, "1.9.
|
54
|
+
set :rvm_ruby_string, "1.9.3"
|
55
|
+
|
56
|
+
#############
|
57
|
+
# Contents
|
58
|
+
#
|
59
|
+
|
60
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
61
|
+
# public or private but the contents are shared between all releases.
|
62
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
63
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
64
|
+
# you can use public_path/current_path/deploy_to etc...
|
65
|
+
# set :contents_folder, {
|
66
|
+
# 'image' => "#{fetch :public_path}/images",
|
67
|
+
# 'video' => "#{fetch :public_path}/videos",
|
68
|
+
# }
|
69
|
+
|
70
|
+
#
|
71
|
+
#
|
72
|
+
#############
|
55
73
|
|
56
74
|
#############
|
57
75
|
# Mysql
|
@@ -61,7 +79,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
61
79
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
62
80
|
|
63
81
|
# What is the database user ?
|
64
|
-
# NOTE: This is only used if you run deploy:server:
|
82
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
65
83
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
66
84
|
|
67
85
|
# Where the database credentials are stored on the server ?
|
@@ -80,7 +98,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
80
98
|
set :mysql_credentials_pass_regex_match, 1
|
81
99
|
|
82
100
|
# Where can we find root credentials ?
|
83
|
-
# NOTE: These options are only used if you run deploy:server:
|
101
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
84
102
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
85
103
|
|
86
104
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -172,19 +190,6 @@ set :web_server_mode, :passenger
|
|
172
190
|
# => What is the path to the socket file
|
173
191
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
174
192
|
|
175
|
-
#
|
176
|
-
#
|
177
|
-
#############
|
178
|
-
|
179
|
-
#############
|
180
|
-
# Contao
|
181
|
-
#
|
182
|
-
|
183
|
-
# Where do you store contao contents ?
|
184
|
-
# The contents are stored in the shared path because they are uploaded from
|
185
|
-
# contao's admin section
|
186
|
-
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
187
|
-
|
188
193
|
#
|
189
194
|
#
|
190
195
|
#############
|
@@ -51,7 +51,25 @@ set :deploy_via, :remote_cache
|
|
51
51
|
set :keep_releases, 5
|
52
52
|
|
53
53
|
# Using RVM? Set this to the ruby version/gemset to use
|
54
|
-
set :rvm_ruby_string, "1.9.
|
54
|
+
set :rvm_ruby_string, "1.9.3"
|
55
|
+
|
56
|
+
#############
|
57
|
+
# Contents
|
58
|
+
#
|
59
|
+
|
60
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
61
|
+
# public or private but the contents are shared between all releases.
|
62
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
63
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
64
|
+
# you can use public_path/current_path/deploy_to etc...
|
65
|
+
# set :contents_folder, {
|
66
|
+
# 'image' => "#{fetch :public_path}/images",
|
67
|
+
# 'video' => "#{fetch :public_path}/videos",
|
68
|
+
# }
|
69
|
+
|
70
|
+
#
|
71
|
+
#
|
72
|
+
#############
|
55
73
|
|
56
74
|
#############
|
57
75
|
# Mysql
|
@@ -61,7 +79,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
61
79
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
62
80
|
|
63
81
|
# What is the database user ?
|
64
|
-
# NOTE: This is only used if you run deploy:server:
|
82
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
65
83
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
66
84
|
|
67
85
|
# Where the database credentials are stored on the server ?
|
@@ -80,7 +98,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
80
98
|
set :mysql_credentials_pass_regex_match, 1
|
81
99
|
|
82
100
|
# Where can we find root credentials ?
|
83
|
-
# NOTE: These options are only used if you run deploy:server:
|
101
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
84
102
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
85
103
|
|
86
104
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -172,19 +190,6 @@ set :web_server_mode, :reverse_proxy
|
|
172
190
|
# => What is the path to the socket file
|
173
191
|
set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
174
192
|
|
175
|
-
#
|
176
|
-
#
|
177
|
-
#############
|
178
|
-
|
179
|
-
#############
|
180
|
-
# Contao
|
181
|
-
#
|
182
|
-
|
183
|
-
# Where do you store contao contents ?
|
184
|
-
# The contents are stored in the shared path because they are uploaded from
|
185
|
-
# contao's admin section
|
186
|
-
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
187
|
-
|
188
193
|
#
|
189
194
|
#
|
190
195
|
#############
|
@@ -51,7 +51,25 @@ set :deploy_via, :remote_cache
|
|
51
51
|
set :keep_releases, 5
|
52
52
|
|
53
53
|
# Using RVM? Set this to the ruby version/gemset to use
|
54
|
-
set :rvm_ruby_string, "1.9.
|
54
|
+
set :rvm_ruby_string, "1.9.3"
|
55
|
+
|
56
|
+
#############
|
57
|
+
# Contents
|
58
|
+
#
|
59
|
+
|
60
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
61
|
+
# public or private but the contents are shared between all releases.
|
62
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
63
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
64
|
+
# you can use public_path/current_path/deploy_to etc...
|
65
|
+
# set :contents_folder, {
|
66
|
+
# 'image' => "#{fetch :public_path}/images",
|
67
|
+
# 'video' => "#{fetch :public_path}/videos",
|
68
|
+
# }
|
69
|
+
|
70
|
+
#
|
71
|
+
#
|
72
|
+
#############
|
55
73
|
|
56
74
|
#############
|
57
75
|
# Mysql
|
@@ -61,7 +79,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
61
79
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
62
80
|
|
63
81
|
# What is the database user ?
|
64
|
-
# NOTE: This is only used if you run deploy:server:
|
82
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
65
83
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
66
84
|
|
67
85
|
# Where the database credentials are stored on the server ?
|
@@ -80,7 +98,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
80
98
|
set :mysql_credentials_pass_regex_match, 1
|
81
99
|
|
82
100
|
# Where can we find root credentials ?
|
83
|
-
# NOTE: These options are only used if you run deploy:server:
|
101
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
84
102
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
85
103
|
|
86
104
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -51,7 +51,25 @@ set :deploy_via, :remote_cache
|
|
51
51
|
set :keep_releases, 5
|
52
52
|
|
53
53
|
# Using RVM? Set this to the ruby version/gemset to use
|
54
|
-
set :rvm_ruby_string, "1.9.
|
54
|
+
set :rvm_ruby_string, "1.9.3"
|
55
|
+
|
56
|
+
#############
|
57
|
+
# Contents
|
58
|
+
#
|
59
|
+
|
60
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
61
|
+
# public or private but the contents are shared between all releases.
|
62
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
63
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
64
|
+
# you can use public_path/current_path/deploy_to etc...
|
65
|
+
# set :contents_folder, {
|
66
|
+
# 'image' => "#{fetch :public_path}/images",
|
67
|
+
# 'video' => "#{fetch :public_path}/videos",
|
68
|
+
# }
|
69
|
+
|
70
|
+
#
|
71
|
+
#
|
72
|
+
#############
|
55
73
|
|
56
74
|
#############
|
57
75
|
# Mysql
|
@@ -61,7 +79,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
61
79
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
62
80
|
|
63
81
|
# What is the database user ?
|
64
|
-
# NOTE: This is only used if you run deploy:server:
|
82
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
65
83
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
66
84
|
|
67
85
|
# Where the database credentials are stored on the server ?
|
@@ -80,7 +98,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
80
98
|
set :mysql_credentials_pass_regex_match, 1
|
81
99
|
|
82
100
|
# Where can we find root credentials ?
|
83
|
-
# NOTE: These options are only used if you run deploy:server:
|
101
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
84
102
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
85
103
|
|
86
104
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'capistrano'
|
2
2
|
require 'capistrano/errors'
|
3
|
+
require 'capistrano-exts/receipts/functions'
|
3
4
|
require 'capistrano-exts/receipts/deploy'
|
4
5
|
require 'capistrano-exts/receipts/mysql'
|
5
6
|
|
@@ -25,12 +26,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
25
26
|
shared_path = fetch :shared_path
|
26
27
|
run <<-CMD
|
27
28
|
#{try_sudo} mkdir -p #{shared_path}/logs &&
|
28
|
-
#{try_sudo} mkdir -p #{shared_path}/config
|
29
|
-
#{try_sudo} mkdir -p #{shared_path}/contents &&
|
30
|
-
#{try_sudo} mkdir -p #{shared_path}/contents/image &&
|
31
|
-
#{try_sudo} mkdir -p #{shared_path}/contents/video &&
|
32
|
-
#{try_sudo} mkdir -p #{shared_path}/contents/audio &&
|
33
|
-
#{try_sudo} mkdir -p #{shared_path}/contents/pdf
|
29
|
+
#{try_sudo} mkdir -p #{shared_path}/config
|
34
30
|
CMD
|
35
31
|
|
36
32
|
deny_htaccess = "order deny,allow\n"
|
@@ -79,31 +75,18 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
79
75
|
|
80
76
|
desc "[internal] Fix contao's symlinks to the shared path"
|
81
77
|
task :fix_links, :roles => :app, :except => { :no_release => true } do
|
82
|
-
contents_path = fetch :contents_path, "#{fetch :public_path}/tl_files/contents"
|
83
|
-
current_path = fetch :current_path
|
84
78
|
latest_release = fetch :latest_release
|
85
79
|
shared_path = fetch :shared_path
|
86
80
|
|
87
|
-
# At this point, the current_path does not exists and by running an mkdir
|
88
|
-
# later, we're actually breaking stuff.
|
89
|
-
# So replace current_path with latest_release in the contents_path string
|
90
|
-
contents_path.gsub! %r{#{current_path}}, latest_release
|
91
|
-
|
92
81
|
# Remove files
|
93
82
|
run <<-CMD
|
94
|
-
#{try_sudo} rm -f #{contents_path} &&
|
95
83
|
#{try_sudo} rm -rf #{latest_release}/public/system/logs &&
|
96
84
|
#{try_sudo} rm -f #{latest_release}/public/system/config/localconfig.php &&
|
97
85
|
#{try_sudo} rm -f #{latest_release}/public/.htaccess
|
98
86
|
CMD
|
99
87
|
|
100
|
-
run <<-CMD
|
101
|
-
mkdir -p #{File.dirname(contents_path)}
|
102
|
-
CMD
|
103
|
-
|
104
88
|
# Create symlinks
|
105
89
|
run <<-CMD
|
106
|
-
#{try_sudo} ln -nsf #{shared_path}/contents #{contents_path} &&
|
107
90
|
#{try_sudo} ln -nsf #{shared_path}/config/htaccess.txt #{latest_release}/public/.htaccess &&
|
108
91
|
#{try_sudo} ln -nsf #{shared_path}/config/localconfig.php #{latest_release}/public/system/config/localconfig.php &&
|
109
92
|
#{try_sudo} ln -nsf #{shared_path}/logs #{latest_release}/public/system/logs
|
@@ -116,8 +99,6 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
116
99
|
after "contao:setup", "contao:setup_localconfig"
|
117
100
|
after "deploy:finalize_update", "contao:fix_links"
|
118
101
|
before "contao:fix_links", "contao:setup_htaccess"
|
119
|
-
after "contao:fix_links", "deploy:cleanup"
|
120
|
-
after "deploy:restart", "deploy:fix_permissions"
|
121
102
|
|
122
103
|
# Mysql Credentials
|
123
104
|
before "contao:setup_localconfig", "mysql:credentials"
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'capistrano'
|
2
|
+
require 'capistrano/errors'
|
3
|
+
require 'capistrano-exts/receipts/functions'
|
4
|
+
|
5
|
+
# Verify that Capistrano is version 2
|
6
|
+
unless Capistrano::Configuration.respond_to?(:instance)
|
7
|
+
abort "This extension requires Capistrano 2"
|
8
|
+
end
|
9
|
+
|
10
|
+
Capistrano::Configuration.instance(:must_exist).load do
|
11
|
+
namespace :contents do
|
12
|
+
desc "Setup the contents folder"
|
13
|
+
task :setup, :roles => :app, :except => { :no_release => true } do
|
14
|
+
shared_path = fetch :shared_path
|
15
|
+
contents_folder = fetch :contents_folder
|
16
|
+
|
17
|
+
run <<-CMD
|
18
|
+
#{try_sudo} mkdir -p #{shared_path}/shared_contents
|
19
|
+
CMD
|
20
|
+
|
21
|
+
contents_folder.each do |folder, path|
|
22
|
+
run <<-CMD
|
23
|
+
#{try_sudo} mkdir -p #{shared_path}/shared_contents/#{folder}
|
24
|
+
CMD
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "[internal] Fix contao's symlinks to the shared path"
|
29
|
+
task :fix_links, :roles => :app, :except => { :no_release => true } do
|
30
|
+
contents_folder = fetch :contents_folder
|
31
|
+
current_path = fetch :current_path
|
32
|
+
latest_release = fetch :latest_release
|
33
|
+
shared_path = fetch :shared_path
|
34
|
+
|
35
|
+
contents_folder.each do |folder, path|
|
36
|
+
# At this point, the current_path does not exists and by running an mkdir
|
37
|
+
# later, we're actually breaking stuff.
|
38
|
+
# So replace current_path with latest_release in the contents_path string
|
39
|
+
path.gsub! %r{#{current_path}}, latest_release
|
40
|
+
|
41
|
+
# Remove the path, making sure it does not exists
|
42
|
+
run <<-CMD
|
43
|
+
#{try_sudo} rm -f #{path}
|
44
|
+
CMD
|
45
|
+
|
46
|
+
# Make sure we have the folder that'll contain the shared path
|
47
|
+
run <<-CMD
|
48
|
+
#{try_sudo} mkdir -p #{File.dirname(path)}
|
49
|
+
CMD
|
50
|
+
|
51
|
+
# Create the symlink
|
52
|
+
run <<-CMD
|
53
|
+
#{try_sudo} ln -nsf #{shared_path}/shared_contents/#{folder} #{path}
|
54
|
+
CMD
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
desc "Export the contents folder"
|
59
|
+
task :export, :roles => :app, :except => { :no_release => true } do
|
60
|
+
shared_path = fetch :shared_path
|
61
|
+
|
62
|
+
# Create random file name
|
63
|
+
random_file = random_tmp_file + ".tar.gz"
|
64
|
+
|
65
|
+
# Create a tarball of the contents folder
|
66
|
+
run <<-CMD
|
67
|
+
cd #{shared_path} &&
|
68
|
+
tar czf #{random_file} --exclude='*~' --exclude='*.tmp' --exclude='*.bak' shared_contents
|
69
|
+
CMD
|
70
|
+
|
71
|
+
# Tranfer the contents to the local system
|
72
|
+
get random_file, random_file
|
73
|
+
|
74
|
+
puts "Contents has been downloaded to #{random_file}"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
after "deploy:setup", "contents:setup"
|
79
|
+
after "deploy:finalize_update", "contents:fix_links"
|
80
|
+
end
|
@@ -56,9 +56,9 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
56
56
|
|
57
57
|
def generate_random_file_name(data = nil)
|
58
58
|
if data.present?
|
59
|
-
"#{fetch :application}_#{Time.now.strftime('%d-%m-%Y_%H-%M-%S')}_#{Digest::SHA1.hexdigest data}"
|
59
|
+
"#{fetch :application}_#{Time.now.strftime('%d-%m-%Y_%H-%M-%S-%L')}_#{Digest::SHA1.hexdigest data}"
|
60
60
|
else
|
61
|
-
"#{fetch :application}_#{Time.now.strftime('%d-%m-%Y_%H-%M-%S')}"
|
61
|
+
"#{fetch :application}_#{Time.now.strftime('%d-%m-%Y_%H-%M-%S-%L')}"
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -27,7 +27,7 @@ Capistrano::Configuration.instance.load do
|
|
27
27
|
begin
|
28
28
|
load "#{location}/#{stage}" unless exists?(:multistages)
|
29
29
|
rescue LoadError
|
30
|
-
abort "The file #{location}/#{stage} does not exist please run 'cap multistage:
|
30
|
+
abort "The file #{location}/#{stage} does not exist please run 'cap multistage:setup'"
|
31
31
|
end
|
32
32
|
find_and_execute_task('multistage:parse_multistages') if exists?(:multistages)
|
33
33
|
end
|
@@ -57,7 +57,7 @@ Capistrano::Configuration.instance.load do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
desc "Stub out the staging config files."
|
60
|
-
task :
|
60
|
+
task :setup do
|
61
61
|
FileUtils.mkdir_p(location)
|
62
62
|
stages.each do |name|
|
63
63
|
file = File.join(location, name.to_s + ".rb")
|
@@ -88,5 +88,5 @@ Capistrano::Configuration.instance.load do
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
-
on :start, "multistage:ensure", :except => stages + ['multistage:
|
91
|
+
on :start, "multistage:ensure", :except => stages + ['multistage:setup', 'multistage:parse_multistages']
|
92
92
|
end
|
@@ -15,7 +15,7 @@ end
|
|
15
15
|
Capistrano::Configuration.instance(:must_exist).load do
|
16
16
|
namespace :deploy do
|
17
17
|
namespace :server do
|
18
|
-
namespace :
|
18
|
+
namespace :setup do
|
19
19
|
desc "Prepare the server (database server, web server and folders)"
|
20
20
|
task :default do
|
21
21
|
# Empty task, server preparation goes into callbacks
|
@@ -43,9 +43,9 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
# Callbacks
|
46
|
-
before "deploy:server:
|
47
|
-
after "deploy:server:
|
46
|
+
before "deploy:server:setup", "deploy:server:setup:folders"
|
47
|
+
after "deploy:server:setup", "deploy:server:setup:finish"
|
48
48
|
|
49
|
-
after "deploy:server:
|
50
|
-
after "deploy:server:
|
49
|
+
after "deploy:server:setup:folders", "deploy:server:db_server:setup"
|
50
|
+
after "deploy:server:setup:folders", "deploy:server:web_server:setup"
|
51
51
|
end
|
@@ -12,7 +12,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
12
12
|
namespace :server do
|
13
13
|
namespace :db_server do
|
14
14
|
desc "[internal] Prepare the database server"
|
15
|
-
task :
|
15
|
+
task :setup, :roles => :db do
|
16
16
|
# Empty task, server preparation goes into callbacks
|
17
17
|
end
|
18
18
|
|
@@ -24,6 +24,6 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
before "deploy:server:db_server:
|
28
|
-
after "deploy:server:db_server:
|
27
|
+
before "deploy:server:db_server:setup", "mysql:create_db_user"
|
28
|
+
after "deploy:server:db_server:setup", "deploy:server:db_server:finish"
|
29
29
|
end
|
@@ -16,7 +16,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
16
16
|
namespace :server do
|
17
17
|
namespace :web_server do
|
18
18
|
desc "Prepare the web server"
|
19
|
-
task :
|
19
|
+
task :setup, :roles => :web do
|
20
20
|
# Empty task, server preparation goes into callbacks
|
21
21
|
end
|
22
22
|
|
@@ -128,8 +128,8 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
-
before "deploy:server:web_server:
|
132
|
-
after "deploy:server:web_server:
|
131
|
+
before "deploy:server:web_server:setup", "deploy:server:web_server:generate_web_configuration"
|
132
|
+
after "deploy:server:web_server:setup", "deploy:server:web_server:finish"
|
133
133
|
after "deploy:server:web_server:generate_web_configuration", "deploy:server:web_server:generate_authentification"
|
134
134
|
after "deploy:server:web_server:generate_web_configuration", "deploy:server:web_server:write_web_conf_file"
|
135
135
|
after "deploy:server:web_server:generate_authentification", "deploy:server:web_server:write_web_server_auth_file"
|
@@ -48,7 +48,25 @@ set :deploy_via, :remote_cache
|
|
48
48
|
set :keep_releases, 5
|
49
49
|
|
50
50
|
# Using RVM? Set this to the ruby version/gemset to use
|
51
|
-
set :rvm_ruby_string, "1.9.
|
51
|
+
set :rvm_ruby_string, "1.9.3"
|
52
|
+
|
53
|
+
#############
|
54
|
+
# Contents
|
55
|
+
#
|
56
|
+
|
57
|
+
# Here you can set all the contents folders, a content folder is a shared folder
|
58
|
+
# public or private but the contents are shared between all releases.
|
59
|
+
# The contents_folders is a hash of key/value where the key is the name of the folder
|
60
|
+
# created under 'shared_path/contents' and symlinked to the value (absolute path)
|
61
|
+
# you can use public_path/current_path/deploy_to etc...
|
62
|
+
# set :contents_folder, {
|
63
|
+
# 'image' => "#{fetch :public_path}/images",
|
64
|
+
# 'video' => "#{fetch :public_path}/videos",
|
65
|
+
# }
|
66
|
+
|
67
|
+
#
|
68
|
+
#
|
69
|
+
#############
|
52
70
|
|
53
71
|
#############
|
54
72
|
# Mysql
|
@@ -58,7 +76,7 @@ set :rvm_ruby_string, "1.9.2"
|
|
58
76
|
set :mysql_db_name, -> { "#{fetch :application}_#{fetch :stage}" }
|
59
77
|
|
60
78
|
# What is the database user ?
|
61
|
-
# NOTE: This is only used if you run deploy:server:
|
79
|
+
# NOTE: This is only used if you run deploy:server:setup which calls mysql:create_db_user
|
62
80
|
set :mysql_db_user, -> { "#{fetch :application}" }
|
63
81
|
|
64
82
|
# Where the database credentials are stored on the server ?
|
@@ -77,7 +95,7 @@ set :mysql_credentials_pass_regex, /password: (.*)$/o
|
|
77
95
|
set :mysql_credentials_pass_regex_match, 1
|
78
96
|
|
79
97
|
# Where can we find root credentials ?
|
80
|
-
# NOTE: These options are only used if you run deploy:server:
|
98
|
+
# NOTE: These options are only used if you run deploy:server:setup which calls mysql:create_db_user
|
81
99
|
set :mysql_root_credentials_file, "/root/.mysql_password"
|
82
100
|
|
83
101
|
# Define the regex / match that will be ran against the contents of the file above to fetch the hostname
|
@@ -170,20 +188,6 @@ set :web_server_mode, :reverse_proxy
|
|
170
188
|
# => What is the path to the socket file
|
171
189
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
172
190
|
|
173
|
-
#
|
174
|
-
#
|
175
|
-
#############
|
176
|
-
|
177
|
-
#############
|
178
|
-
# Contao
|
179
|
-
#
|
180
|
-
|
181
|
-
# Where do you store contao contents ?
|
182
|
-
# The contents are stored in the shared path because they are uploaded from
|
183
|
-
# contao's admin section
|
184
|
-
# Uncomment if necessary (default to public_path/tl_files/contents)
|
185
|
-
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
186
|
-
|
187
191
|
#
|
188
192
|
#
|
189
193
|
#############
|
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.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-09-
|
12
|
+
date: 2011-09-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
16
|
-
requirement: &
|
16
|
+
requirement: &2155898800 !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: *2155898800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: i18n
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152141240 !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: *2152141240
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &2152140380 !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: *2152140380
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: guard
|
49
|
-
requirement: &
|
49
|
+
requirement: &2152139700 !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: *2152139700
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: guard-bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &2152139040 !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: *2152139040
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: guard-rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &2152138360 !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: *2152138360
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rspec
|
82
|
-
requirement: &
|
82
|
+
requirement: &2152137740 !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: *2152137740
|
91
91
|
description: Handy extensions for Capistrano
|
92
92
|
email:
|
93
93
|
- wael.nasreddine@gmail.com
|
@@ -120,6 +120,7 @@ files:
|
|
120
120
|
- lib/capistrano-exts/core_ext/string/filters.rb
|
121
121
|
- lib/capistrano-exts/receipts.rb
|
122
122
|
- lib/capistrano-exts/receipts/contao.rb
|
123
|
+
- lib/capistrano-exts/receipts/contents.rb
|
123
124
|
- lib/capistrano-exts/receipts/deploy.rb
|
124
125
|
- lib/capistrano-exts/receipts/functions.rb
|
125
126
|
- lib/capistrano-exts/receipts/git.rb
|