alcapon 0.3.2 → 0.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 +8 -0
- data/bin/capezit +2 -0
- data/lib/capez.rb +40 -48
- data/lib/ezpublish4.rb +3 -0
- data/lib/ezpublish5.rb +4 -0
- data/lib/utils.rb +50 -0
- metadata +6 -3
data/README.md
CHANGED
@@ -10,6 +10,14 @@ it on a preproduction environment before going further. Please also do read the
|
|
10
10
|
|
11
11
|
## Changelog
|
12
12
|
|
13
|
+
### 0.4.x
|
14
|
+
|
15
|
+
- added eZ Publish 5.x support for ezpublish_legacy. This means that version
|
16
|
+
of eZ Publish must be known by alcapon. You can either set ezpublish_version
|
17
|
+
(accepted values are 4 or 5) in your Capfile or add `-S ezpublish_version=4`
|
18
|
+
or `-S ezpublish_version=5` after your command line call, like this :
|
19
|
+
cap production deploy -S ezpublish_version=5
|
20
|
+
|
13
21
|
### 0.3.x
|
14
22
|
|
15
23
|
- added the possibility to trigger rename and in-file replace operations
|
data/bin/capezit
CHANGED
@@ -41,6 +41,8 @@ end
|
|
41
41
|
files = {
|
42
42
|
"Capfile" => unindent(<<-FILE),
|
43
43
|
set :alcapon_path, \"#{alcapon_path}\"
|
44
|
+
set :ezpublish_version, 4
|
45
|
+
|
44
46
|
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
|
45
47
|
Dir['vendor/gems/*/recipes/*.rb','vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
|
46
48
|
|
data/lib/capez.rb
CHANGED
@@ -1,7 +1,20 @@
|
|
1
|
-
load_paths.push File.expand_path('../', __FILE__)
|
2
|
-
load 'db.rb'
|
3
1
|
require 'colored'
|
4
|
-
|
2
|
+
|
3
|
+
load_paths.push File.expand_path('../', __FILE__)
|
4
|
+
load "utils"
|
5
|
+
|
6
|
+
if( fetch( :ezpublish_version, nil ) == nil )
|
7
|
+
alcapon_message( "I am now able to manage versions 4 & 5 of eZ Publish but you
|
8
|
+
have to set :ezpublish_version
|
9
|
+
- in your Capfile like this : set :ezpublish_version, <ezpublish_version>
|
10
|
+
- as a command line option : -S ezpublish_version=<ezpublish_version>
|
11
|
+
where <ezpublish_version> can be either 4 or 5." )
|
12
|
+
abort
|
13
|
+
else
|
14
|
+
fetch(:ezpublish_version) == 4 || fetch(:ezpublish_version) == 5 || abort( "Version #{ezpublish_version} not supported".red )
|
15
|
+
load "db"
|
16
|
+
load "ezpublish#{ezpublish_version}"
|
17
|
+
end
|
5
18
|
|
6
19
|
# This will simply do chmod g+w on all dir
|
7
20
|
# See task :setup
|
@@ -42,10 +55,10 @@ before "deploy:finalize_update" do
|
|
42
55
|
# Needed if you want to create extra shared directories under var/ with
|
43
56
|
# set :shared_children, [ "var/something",
|
44
57
|
# "var/something_else" ]
|
45
|
-
# Note that :shared_children creates a folder within shared which name is
|
58
|
+
# Note that :shared_children creates a folder within /shared which name is
|
46
59
|
# the last path element (ie: something or something_else) => that's why
|
47
|
-
# we cannot use it to create siteaccess
|
48
|
-
run( "mkdir #{latest_release}
|
60
|
+
# we cannot use it to create siteaccess' storage folder (var/siteaccess/storage)
|
61
|
+
run( "mkdir -p #{latest_release}/#{ezp_legacy_path('var')}" )
|
49
62
|
end
|
50
63
|
|
51
64
|
after "deploy:finalize_update" do
|
@@ -118,7 +131,7 @@ namespace :capez do
|
|
118
131
|
|
119
132
|
unless !(file_changes = get_file_changes) then
|
120
133
|
|
121
|
-
path = options[:locally] ? "" :
|
134
|
+
path = options[:locally] ? "" : fetch( :latest_release )
|
122
135
|
|
123
136
|
changes = 0
|
124
137
|
renames = 0
|
@@ -141,7 +154,7 @@ namespace :capez do
|
|
141
154
|
if operations.has_key?("rename")
|
142
155
|
if( target_filename != operations['rename'] )
|
143
156
|
target_filename = operations['rename']
|
144
|
-
cmd = "if [ -f #{path}
|
157
|
+
cmd = "if [ -f #{path}/#{filename} ]; then cp #{path}/#{filename} #{path}/#{target_filename}; fi;"
|
145
158
|
options[:locally] ? run_locally( "#{cmd}" ) : run( "#{cmd}" )
|
146
159
|
renames += 1
|
147
160
|
else
|
@@ -155,15 +168,14 @@ namespace :capez do
|
|
155
168
|
when 'rename'
|
156
169
|
when 'replace'
|
157
170
|
|
158
|
-
if( value.count > 0 )
|
171
|
+
if( value.count > 0 && !dry_run)
|
159
172
|
|
160
173
|
# download file if necessary
|
161
174
|
if options[:locally]
|
162
175
|
tmp_filename = target_filename
|
163
176
|
else
|
164
177
|
tmp_filename = target_filename+".tmp"
|
165
|
-
|
166
|
-
get "#{path}#{target_filename}", tmp_filename
|
178
|
+
get "#{path}/#{target_filename}", tmp_filename
|
167
179
|
end
|
168
180
|
|
169
181
|
text = File.read(tmp_filename)
|
@@ -176,7 +188,7 @@ namespace :capez do
|
|
176
188
|
# upload and remove temporary file
|
177
189
|
if !options[:locally]
|
178
190
|
run( "if [ -f #{target_filename} ]; then rm #{target_filename}; fi;" )
|
179
|
-
upload( tmp_filename, "#{path}
|
191
|
+
upload( tmp_filename, "#{path}/#{target_filename}" )
|
180
192
|
run_locally( "rm #{tmp_filename}" )
|
181
193
|
end
|
182
194
|
end
|
@@ -230,7 +242,7 @@ namespace :capez do
|
|
230
242
|
puts( "\n--> Clearing caches #{'with --purge'.red if cache_purge}" )
|
231
243
|
cache_list.each { |cache_tag|
|
232
244
|
print_dotted( "#{cache_tag}" )
|
233
|
-
capture "cd #{current_path} && sudo -u #{webserver_user} php bin/php/ezcache.php --clear-tag=#{cache_tag}#{' --purge' if cache_purge}"
|
245
|
+
capture "cd #{current_path}/#{ezpublish_legacy} && sudo -u #{webserver_user} php bin/php/ezcache.php --clear-tag=#{cache_tag}#{' --purge' if cache_purge}"
|
234
246
|
puts( " OK".green )
|
235
247
|
}
|
236
248
|
end
|
@@ -267,18 +279,23 @@ namespace :capez do
|
|
267
279
|
task :init_release, :roles => :web do
|
268
280
|
puts( "\n--> Release directories" )
|
269
281
|
|
282
|
+
if( ezp5? )
|
283
|
+
run( "chown -R #{fetch(:webserver_user,:user)}:#{fetch(:webserver_group,:user)} #{latest_release}/ezpublish/{cache,logs,config} web" )
|
284
|
+
run( "chmod -R g+wx #{latest_release}/ezpublish/{cache,logs} web" )
|
285
|
+
end
|
286
|
+
|
270
287
|
# creates a storage dir for elements specified by :storage_directories
|
271
288
|
storage_directories.each{ |sd|
|
272
289
|
print_dotted( "var/#{sd}/storage" )
|
273
|
-
run( "mkdir #{latest_release}/var/#{sd}" )
|
290
|
+
run( "mkdir #{latest_release}/" + ezp_legacy_path( "var/#{sd}" ) )
|
274
291
|
puts( " OK".green )
|
275
292
|
}
|
276
293
|
|
277
294
|
# makes sure the webserver can write into var/
|
278
|
-
run( "chmod -R g+w #{latest_release}/var")
|
279
|
-
run( "chown -R #{fetch(:webserver_user,:user)}:#{fetch(:webserver_group,:user)} #{latest_release}/var")
|
295
|
+
run( "chmod -R g+w #{latest_release}/" + ezp_legacy_path( "var" ) )
|
296
|
+
run( "chown -R #{fetch(:webserver_user,:user)}:#{fetch(:webserver_group,:user)} #{latest_release}/" + ezp_legacy_path( "var" ) )
|
280
297
|
# needed even if we just want to run 'bin/php/ezpgenerateautoloads.php' with --extension
|
281
|
-
run( "chown -R #{fetch(:webserver_user,:user)}:#{fetch(:webserver_group,:user)} #{latest_release}/autoload")
|
298
|
+
run( "chown -R #{fetch(:webserver_user,:user)}:#{fetch(:webserver_group,:user)} #{latest_release}/" + ezp_legacy_path( "autoload" ) )
|
282
299
|
end
|
283
300
|
|
284
301
|
desc <<-DESC
|
@@ -288,17 +305,17 @@ namespace :capez do
|
|
288
305
|
puts( "\n--> Symlinks" )
|
289
306
|
|
290
307
|
print_dotted( "var/storage" )
|
291
|
-
run( "ln -s #{shared_path}/var/storage #{latest_release}/var/storage" )
|
308
|
+
run( "ln -s #{shared_path}/var/storage #{latest_release}/" + ezp_legacy_path( "var/storage" ) )
|
292
309
|
puts( " OK".green )
|
293
310
|
|
294
311
|
storage_directories.each{ |sd|
|
295
312
|
print_dotted( "var/#{sd}/storage" )
|
296
|
-
run( "ln -s #{shared_path}/var/#{sd}/storage #{latest_release}/var/#{sd}/storage", :as => webserver_user )
|
313
|
+
run( "ln -s #{shared_path}/var/#{sd}/storage #{latest_release}/" + ezp_legacy_path( "var/#{sd}/storage" ), :as => webserver_user )
|
297
314
|
#run( "chmod -h g+w #{latest_release}/var/#{sd}/storage")
|
298
315
|
puts( " OK".green )
|
299
316
|
}
|
300
317
|
|
301
|
-
run( "chmod -R g+w #{latest_release}/var")
|
318
|
+
run( "chmod -R g+w #{latest_release}/" + ezp_legacy_path( "var" ) )
|
302
319
|
run( "chown -R #{fetch(:webserver_user,:user)}:#{fetch(:webserver_group,:user)} #{shared_path}/var")
|
303
320
|
end
|
304
321
|
|
@@ -319,7 +336,7 @@ namespace :capez do
|
|
319
336
|
exclude_string << "--exclude '#{item}' "
|
320
337
|
}
|
321
338
|
|
322
|
-
run_locally( "rsync -az #{exclude_string} #{user}@#{shared_host}:#{shared_path}/var/* var/" )
|
339
|
+
run_locally( "rsync -az #{exclude_string} #{user}@#{shared_host}:#{shared_path}/var/* " + ezp_legacy_path( "var/" ) )
|
323
340
|
end
|
324
341
|
|
325
342
|
desc <<-DESC
|
@@ -340,7 +357,7 @@ namespace :capez do
|
|
340
357
|
}
|
341
358
|
|
342
359
|
try_sudo( "chown -R #{user}:#{webserver_user} #{shared_path}/var/*" )
|
343
|
-
run_locally( "rsync -az #{exclude_string} var/* #{user}@#{shared_host}:#{shared_path}/var/ " )
|
360
|
+
run_locally( "rsync -az #{exclude_string} #{ezp_legacy_path('var')}/* #{user}@#{shared_host}:#{shared_path}/var/ " )
|
344
361
|
try_sudo( "chown -R #{webserver_user} #{shared_path}/var/*" )
|
345
362
|
try_sudo( "chmod -R ug+rwx #{shared_path}/var/*" )
|
346
363
|
end
|
@@ -361,7 +378,7 @@ namespace :capez do
|
|
361
378
|
puts( "\n--> eZ Publish autoloads " )
|
362
379
|
autoload_list.each { |autoload|
|
363
380
|
print_dotted( "#{autoload}" )
|
364
|
-
capture( "cd #{latest_release} && sudo -u #{webserver_user} php bin/php/ezpgenerateautoloads.php --#{autoload}" )
|
381
|
+
capture( "cd #{latest_release}/#{ezp_legacy_path} && sudo -u #{webserver_user} php bin/php/ezpgenerateautoloads.php --#{autoload}" )
|
365
382
|
puts( " OK".green )
|
366
383
|
}
|
367
384
|
end
|
@@ -448,29 +465,4 @@ namespace :capez do
|
|
448
465
|
end
|
449
466
|
end
|
450
467
|
|
451
|
-
|
452
|
-
end
|
453
|
-
|
454
|
-
def print_dotted( message, options={} )
|
455
|
-
defaults_options = { :eol => false,
|
456
|
-
:sol => false,
|
457
|
-
:max_length => 40,
|
458
|
-
:eol_msg => false }
|
459
|
-
|
460
|
-
options = defaults_options.merge( options )
|
461
|
-
message = "#{message} " + "." * [0,options[:max_length]-message.length-1].max
|
462
|
-
|
463
|
-
if options[:sol]
|
464
|
-
message = "\n#{message}"
|
465
|
-
end
|
466
|
-
|
467
|
-
if options[:eol_msg]
|
468
|
-
message += " #{options[:eol_msg]}"
|
469
|
-
end
|
470
|
-
|
471
|
-
if options[:eol]
|
472
|
-
puts message
|
473
|
-
else
|
474
|
-
print message
|
475
|
-
end
|
476
468
|
end
|
data/lib/ezpublish4.rb
ADDED
data/lib/ezpublish5.rb
ADDED
data/lib/utils.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
def unindent(string)
|
2
|
+
indentation = string[/\A\s*/]
|
3
|
+
string.strip.gsub(/^#{indentation}/, "")
|
4
|
+
end
|
5
|
+
|
6
|
+
def print_dotted( message, options={} )
|
7
|
+
defaults_options = { :eol => false,
|
8
|
+
:sol => false,
|
9
|
+
:max_length => 40,
|
10
|
+
:eol_msg => false }
|
11
|
+
|
12
|
+
options = defaults_options.merge( options )
|
13
|
+
message = "#{message} " + "." * [0,options[:max_length]-message.length-1].max
|
14
|
+
|
15
|
+
if options[:sol]
|
16
|
+
message = "\n#{message}"
|
17
|
+
end
|
18
|
+
|
19
|
+
if options[:eol_msg]
|
20
|
+
message += " #{options[:eol_msg]}"
|
21
|
+
end
|
22
|
+
|
23
|
+
if options[:eol]
|
24
|
+
puts message
|
25
|
+
else
|
26
|
+
print message
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def ezp5?
|
31
|
+
return ( fetch( :ezpublish_version, nil ) == 5 )
|
32
|
+
end
|
33
|
+
|
34
|
+
def ezp_legacy_path(path='')
|
35
|
+
elements = Array.new
|
36
|
+
|
37
|
+
if( fetch( :ezp_legacy, "" ) != "" )
|
38
|
+
elements += [ "#{ezp_legacy}" ]
|
39
|
+
end
|
40
|
+
|
41
|
+
if( path != '' )
|
42
|
+
elements += [ "#{path}" ]
|
43
|
+
end
|
44
|
+
|
45
|
+
return File.join( elements )
|
46
|
+
end
|
47
|
+
|
48
|
+
def alcapon_message(string)
|
49
|
+
puts( "[alcapon]".green+" #{string}" )
|
50
|
+
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 4
|
8
|
+
- 0
|
9
|
+
version: 0.4.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Arnaud Lafon
|
@@ -57,6 +57,9 @@ files:
|
|
57
57
|
- lib/capez.rb
|
58
58
|
- lib/db.rb
|
59
59
|
- lib/ext/spinner.rb
|
60
|
+
- lib/ezpublish4.rb
|
61
|
+
- lib/ezpublish5.rb
|
62
|
+
- lib/utils.rb
|
60
63
|
- README.md
|
61
64
|
- LICENSE.md
|
62
65
|
has_rdoc: true
|