capistrano-exts 1.3.6 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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