capifony 2.7.0 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b168e07e1c173b358ed5cdb9467fb690d5085a9e
4
- data.tar.gz: 155fd4a31fe4e3b0ca319abc9bdbb3e687718d6e
3
+ metadata.gz: 63a49cfca1be6384d8d11dba3b49be49892e5db6
4
+ data.tar.gz: 796d9d09899de7a4a2bd54e94e657856382807af
5
5
  SHA512:
6
- metadata.gz: 0cd77b0fa8b14b7b5c9b09dc3800a8153533e5baa0ab5cc1819124f7618c16dcd5912b5dc1da82c679626897bd550cc17da507fc69bf018d91b7a88525070b8d
7
- data.tar.gz: 610507812169e062fc095fb71c8aec2d01df0683c7d4de4b82ff920fc7e3e9f12acd461a01dfb66c002855729bc0c6360bffa15a429df06dab6edc3fec86d612
6
+ metadata.gz: 26918b2ffc9114c1c7ce0218e830b77959d6837caa1dcfcaf823ad380e606d2414c0c20053298d89ccb058668cee65b109033e86568ef5870baea9d1086c605a
7
+ data.tar.gz: 9f23656a1293440ce3266a0c564878a8e024d50383598381f524e9736fcefe7953e73fb973b1bb2f495949423396ed62a268751310cdf79471ff0c50d1527e85
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ### 2.8.0 / August 1, 2014
2
+
3
+ * Added: alternative way on Linux/Ubuntu to deploy using chmod option: access
4
+ recursively all users write permissions to following directory.
5
+ * Added: rename database move commands to copy
6
+ * Added: check for possible already existing acl on directory
7
+ * Added: make `symfony:composer:install` run in interactive mode, to allow
8
+ `parameters.(ini|yml)` configuration using
9
+ `incenteev/composer-parameter-handle`
10
+
1
11
  ### 2.7.0 / May 16, 2014
2
12
 
3
13
  * Added: support for command `doctrine:mongodb:fixtures:load`
data/bin/capifony CHANGED
@@ -5,7 +5,7 @@ require 'fileutils'
5
5
 
6
6
  symfony_version = nil
7
7
  symfony_app_path = 'app'
8
- capifony_version = '2.7.0'
8
+ capifony_version = '2.8.0'
9
9
 
10
10
  OptionParser.new do |opts|
11
11
  opts.banner = "Usage: #{File.basename($0)} [path]"
@@ -61,7 +61,7 @@ namespace :database do
61
61
  end
62
62
  end
63
63
 
64
- namespace :move do
64
+ namespace :copy do
65
65
  desc "Dump remote database, download it to local & populate here"
66
66
  task :to_local, :roles => :db, :only => { :primary => true } do
67
67
 
@@ -72,7 +72,7 @@ namespace :database do
72
72
  end
73
73
  end
74
74
 
75
- namespace :move do
75
+ namespace :copy do
76
76
  desc "Dumps remote database, downloads it to local, and populates here"
77
77
  task :to_local, :roles => :db, :only => { :primary => true } do
78
78
  env = fetch(:deploy_env, "remote")
@@ -27,6 +27,9 @@ namespace :deploy do
27
27
  "setfacl -R -m u:#{user}:rwX -m u:#{webserver_user}:rwX %s",
28
28
  "setfacl -dR -m u:#{user}:rwx -m u:#{webserver_user}:rwx %s"
29
29
  ],
30
+ :chmod_alt => [
31
+ "chmod -R a+w %s"
32
+ ],
30
33
  :chown => ["chown -R #{webserver_user} %s"]
31
34
  }
32
35
 
@@ -43,7 +46,7 @@ namespace :deploy do
43
46
  dirs.each do |dir|
44
47
  is_owner = (capture "`echo stat #{dir} -c %U`").chomp == user
45
48
  if is_owner && permission_method != :chown
46
- has_facl = (capture "getfacl --absolute-names #{dir} | grep #{webserver_user} | wc -l").chomp != "0"
49
+ has_facl = (capture "getfacl --absolute-names -t #{dir} | grep #{webserver_user}.*rwx | wc -l").chomp != "0"
47
50
  if (!has_facl)
48
51
  methods[permission_method].each do |cmd|
49
52
  try_sudo sprintf(cmd, dir)
@@ -154,11 +154,76 @@ namespace :symfony do
154
154
  if use_composer_tmp
155
155
  logger.debug "Installing composer dependencies to #{$temp_destination}"
156
156
  capifony_pretty_print "--> Installing Composer dependencies in temp location"
157
- run_locally "cd #{$temp_destination} && SYMFONY_ENV=#{symfony_env_prod} #{composer_bin} install #{options}"
157
+
158
+ tmp_options = options
159
+
160
+ if deploy_via == :capifony_copy_local
161
+ # do not run scripts locally: they must be executed on the target server
162
+ tmp_options += " --no-scripts"
163
+ end
164
+
165
+ run_locally "cd #{$temp_destination} && SYMFONY_ENV=#{symfony_env_prod} #{composer_bin} install #{tmp_options}"
158
166
  capifony_puts_ok
159
167
  else
160
168
  capifony_pretty_print "--> Installing Composer dependencies"
161
- run "#{try_sudo} sh -c 'cd #{latest_release} && SYMFONY_ENV=#{symfony_env_prod} #{composer_bin} install #{options}'"
169
+
170
+ command = "#{try_sudo} sh -c 'cd #{latest_release} && SYMFONY_ENV=#{symfony_env_prod} #{composer_bin} install #{options}'"
171
+
172
+ if interactive_mode
173
+
174
+ input = ''
175
+ print_wizard = false
176
+ close_header = true
177
+ run(command, { :pty => true, :eof => false }) do |channel, stream, data|
178
+
179
+ # on normal output
180
+ channel.on_data do |ch, data|
181
+
182
+ # check if composer is waiting for user input
183
+ print_wizard = data =~ /:[[:space:]]*$/
184
+
185
+ # avoid echoing the user input
186
+ if input.strip != data.strip and not print_wizard
187
+ logger.debug data
188
+ end
189
+
190
+ # if input has been requested
191
+ if print_wizard
192
+
193
+ if close_header
194
+
195
+ # finalize the info string
196
+ capifony_puts_ok
197
+
198
+ # and open a new section
199
+ capifony_pretty_print "--> Updating parameters"
200
+ puts if logger.level == Logger::IMPORTANT
201
+
202
+ close_header = false
203
+ end
204
+
205
+ print data
206
+
207
+ # capture the user input
208
+ input = $stdin.gets
209
+
210
+ # send it to the remote process
211
+ channel.send_data(input)
212
+ end
213
+ end
214
+
215
+ # on error
216
+ channel.on_extended_data do |ch, data|
217
+ warn "[err :: #{ch[:server]}] #{data}"
218
+ end
219
+ end
220
+
221
+ capifony_pretty_print "--> Parameters updated" if not close_header
222
+
223
+ else
224
+ run command
225
+ end
226
+
162
227
  capifony_puts_ok
163
228
  end
164
229
  end
@@ -176,7 +241,64 @@ namespace :symfony do
176
241
  end
177
242
 
178
243
  capifony_pretty_print "--> Updating Composer dependencies"
179
- run "#{try_sudo} sh -c 'cd #{latest_release} && SYMFONY_ENV=#{symfony_env_prod} #{composer_bin} update #{options}'"
244
+
245
+ command = "#{try_sudo} sh -c 'cd #{latest_release} && SYMFONY_ENV=#{symfony_env_prod} #{composer_bin} update #{options}'"
246
+
247
+ if interactive_mode
248
+
249
+ input = ''
250
+ print_wizard = false
251
+ close_header = true
252
+ run(command, { :pty => true, :eof => false }) do |channel, stream, data|
253
+
254
+ # on normal output
255
+ channel.on_data do |ch, data|
256
+
257
+ # check if composer is waiting for user input
258
+ print_wizard = data =~ /:[[:space:]]*$/
259
+
260
+ # avoid echoing the user input
261
+ if input.strip != data.strip and not print_wizard
262
+ logger.debug data
263
+ end
264
+
265
+ # if input has been requested
266
+ if print_wizard
267
+
268
+ if close_header
269
+
270
+ # finalize the info string
271
+ capifony_puts_ok
272
+
273
+ # and open a new section
274
+ capifony_pretty_print "--> Updating parameters"
275
+ puts if logger.level == Logger::IMPORTANT
276
+
277
+ close_header = false
278
+ end
279
+
280
+ print data
281
+
282
+ # capture the user input
283
+ input = $stdin.gets
284
+
285
+ # send it to the remote process
286
+ channel.send_data(input)
287
+ end
288
+ end
289
+
290
+ # on error
291
+ channel.on_extended_data do |ch, data|
292
+ warn "[err :: #{ch[:server]}] #{data}"
293
+ end
294
+ end
295
+
296
+ capifony_pretty_print "--> Parameters updated" if not close_header
297
+
298
+ else
299
+ run command
300
+ end
301
+
180
302
  capifony_puts_ok
181
303
  end
182
304
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capifony
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Kudryashov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-16 00:00:00.000000000 Z
12
+ date: 2014-08-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano