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 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.3.6'
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:prepare
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:prepare deploy:setup
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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
@@ -33,4 +33,5 @@ Capistrano::Configuration.instance(:must_exist).load do
33
33
 
34
34
  # Dependencies
35
35
  before "deploy", "deploy:check_if_remote_ready"
36
+ after "deploy:restart", "deploy:fix_permissions"
36
37
  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:prepare'"
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 :prepare do
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:prepare', 'multistage:parse_multistages']
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 :prepare do
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:prepare", "deploy:server:prepare:folders"
47
- after "deploy:server:prepare", "deploy:server:prepare:finish"
46
+ before "deploy:server:setup", "deploy:server:setup:folders"
47
+ after "deploy:server:setup", "deploy:server:setup:finish"
48
48
 
49
- after "deploy:server:prepare:folders", "deploy:server:db_server:prepare"
50
- after "deploy:server:prepare:folders", "deploy:server:web_server:prepare"
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 :prepare, :roles => :db do
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:prepare", "mysql:create_db_user"
28
- after "deploy:server:db_server:prepare", "deploy:server:db_server:finish"
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 :prepare, :roles => :web do
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:prepare", "deploy:server:web_server:generate_web_configuration"
132
- after "deploy:server:web_server:prepare", "deploy:server:web_server:finish"
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.2"
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:prepare which calls mysql:create_db_user
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:prepare which calls mysql:create_db_user
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
  #############
@@ -2,8 +2,8 @@ module Capistrano
2
2
  module Extensions
3
3
  module Version #:nodoc:
4
4
  MAJOR = 1
5
- MINOR = 3
6
- TINY = 6
5
+ MINOR = 4
6
+ TINY = 0
7
7
 
8
8
  ARRAY = [MAJOR, MINOR, TINY]
9
9
  STRING = ARRAY.join(".")
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.3.6
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-05 00:00:00.000000000 Z
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: &2152053460 !ruby/object:Gem::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: *2152053460
24
+ version_requirements: *2155898800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: i18n
27
- requirement: &2152052440 !ruby/object:Gem::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: *2152052440
35
+ version_requirements: *2152141240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activesupport
38
- requirement: &2152051800 !ruby/object:Gem::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: *2152051800
46
+ version_requirements: *2152140380
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: guard
49
- requirement: &2152050700 !ruby/object:Gem::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: *2152050700
57
+ version_requirements: *2152139700
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: guard-bundler
60
- requirement: &2152083640 !ruby/object:Gem::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: *2152083640
68
+ version_requirements: *2152139040
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: guard-rspec
71
- requirement: &2152081640 !ruby/object:Gem::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: *2152081640
79
+ version_requirements: *2152138360
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rspec
82
- requirement: &2152080060 !ruby/object:Gem::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: *2152080060
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