alcapon 0.4.5 → 0.4.6

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.
@@ -3,8 +3,8 @@
3
3
  require 'optparse'
4
4
  require 'fileutils'
5
5
 
6
- alcapon_path = 'extension/alcapon'
7
- FileUtils.mkdir_p(File.join(alcapon_path,'config/deploy'))
6
+ ezpublish_version = nil
7
+ alcapon_version = "0.4.6"
8
8
 
9
9
  OptionParser.new do |opts|
10
10
  opts.banner = "Usage: #{File.basename($0)} [path]"
@@ -14,6 +14,11 @@ OptionParser.new do |opts|
14
14
  exit 0
15
15
  end
16
16
 
17
+ opts.on("-v", "--version", "") do
18
+ puts "alcapon v#{alcapon_version}"
19
+ exit 0
20
+ end
21
+
17
22
  begin
18
23
  opts.parse!(ARGV)
19
24
  rescue OptionParser::ParseError => e
@@ -38,10 +43,21 @@ def unindent(string)
38
43
  string.strip.gsub(/^#{indentation}/, "")
39
44
  end
40
45
 
46
+ base = ARGV.shift
47
+ ezpublish_version = ezpublish_version || ((File.directory? File.join(base, 'ezpublish')) ? 5 : 4)
48
+
49
+ if ezpublish_version == 5
50
+ alcapon_path = 'ezpublish_legacy/extension/alcapon'
51
+ else
52
+ alcapon_path = 'extension/alcapon'
53
+ end
54
+
55
+ FileUtils.mkdir_p(File.join(alcapon_path,'config/deploy'))
56
+
41
57
  files = {
42
58
  "Capfile" => unindent(<<-FILE),
43
59
  set :alcapon_path, \"#{alcapon_path}\"
44
- set :ezpublish_version, 4
60
+ set :ezpublish_version, #{ezpublish_version}
45
61
 
46
62
  load 'deploy' if respond_to?(:namespace) # cap2 differentiator
47
63
  Dir['vendor/gems/*/recipes/*.rb','vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
@@ -94,6 +110,7 @@ files = {
94
110
  # Prevents you from cloning the whole rep. each deploy but your remote servers
95
111
  # must be able to get connected to your scm server
96
112
  set :deploy_via, :remote_cache
113
+ set :copy_exclude, [ '.git' ]
97
114
 
98
115
  # Your Primary HTTP server
99
116
  # (Use config/deploy/*.rb files instead if you need a multisage setup)
@@ -170,7 +187,7 @@ files = {
170
187
 
171
188
  # Check-list (used by cap setup:check)
172
189
  depend :remote, :command, "php"
173
- depend :remote, :match, "php -r \\"echo(version_compare(PHP_VERSION,'5.2.14')?'ok':'ko');\\"", "ok"
190
+ depend :remote, :match, "php -r \\"echo(version_compare(PHP_VERSION,'5.3.3')?'ok':'ko');\\"", "ok"
174
191
  depend :remote, :match, "php -m | grep curl", "curl"
175
192
 
176
193
  # TODO
@@ -183,6 +200,9 @@ files = {
183
200
  "#{alcapon_path}/config/deploy/devel.rb" => unindent(<<-FILE),
184
201
  # There you can override default settings for this specific environment
185
202
 
203
+ # Triggers local modification, based on the vcs used (only git supported)
204
+ set :enable_local_check, true
205
+
186
206
  set :branch, "dev"
187
207
  #role :web, "myapp.devserv", :primary => true # Your Primary HTTP server
188
208
 
@@ -219,8 +239,6 @@ files = {
219
239
  FILE
220
240
  }
221
241
 
222
- base = ARGV.shift
223
-
224
242
  files.each do |file, content|
225
243
  file = File.join(base, file)
226
244
  if File.exists?(file)
@@ -37,7 +37,7 @@ after "deploy:setup", :roles => :web do
37
37
  print_dotted( "--> Fixing permissions on deployment directory" )
38
38
  try_sudo( "chown -R #{user} #{deploy_to}" ) # if not code checkout cannot be done :/
39
39
  capez_puts_done
40
- capez.var.init_shared
40
+ ezpublish.var.init_shared
41
41
  end
42
42
 
43
43
  before "deploy:update_code" do
@@ -63,7 +63,9 @@ before "deploy:finalize_update" do
63
63
  end
64
64
 
65
65
  before "deploy", :roles => :web do
66
- capez.dev.local_check
66
+ if fetch( :enable_local_check, false )
67
+ ezpublish.dev.local_check
68
+ end
67
69
  deploy.web.disable
68
70
  end
69
71
 
@@ -84,8 +86,7 @@ namespace :deploy do
84
86
 
85
87
  namespace :web do
86
88
  desc <<-DESC
87
- Puts a html file somewhere in the documentroot
88
- This file is displayed by a RewriteRule if it exists
89
+ Puts a html file somewhere in the documentroot. This file is displayed by a RewriteRule if it exists
89
90
  DESC
90
91
  task :disable do
91
92
  end
@@ -109,7 +110,7 @@ namespace :deploy do
109
110
  end
110
111
 
111
112
 
112
- namespace :capez do
113
+ namespace :ezpublish do
113
114
  namespace :settings do
114
115
 
115
116
  def make_file_changes( options={} )
@@ -242,7 +243,7 @@ namespace :capez do
242
243
  capez_puts_done
243
244
  }
244
245
  run( "chmod -R g+w #{shared_path}/var")
245
- run( "chown -R #{fetch(:webserver_group,user)} #{shared_path}/var")
246
+ try_sudo( "chown -R #{fetch(:webserver_group,user)} #{shared_path}/var")
246
247
  end
247
248
 
248
249
 
@@ -258,7 +259,7 @@ namespace :capez do
258
259
  folders_path.each{ |fp|
259
260
  print_dotted( "#{fp}" )
260
261
  run( "mkdir -p #{latest_release}/#{fp}")
261
- run( "chown -R #{fetch(:webserver_user,user)}:#{fetch(:webserver_group,user)} #{latest_release}/#{fp}" )
262
+ try_sudo( "chown -R #{fetch(:webserver_user,user)}:#{fetch(:webserver_group,user)} #{latest_release}/#{fp}" )
262
263
  run( "chmod -R g+wx #{latest_release}/#{fp}" )
263
264
  capez_puts_done
264
265
  }
@@ -273,7 +274,7 @@ namespace :capez do
273
274
 
274
275
  # makes sure the webserver can write into var/
275
276
  run( "chmod -R g+w #{latest_release}/" + ezp_legacy_path( "var" ) )
276
- run( "chown -R #{fetch(:webserver_user,user)}:#{fetch(:webserver_group,user)} #{latest_release}/" + ezp_legacy_path( "var" ) )
277
+ try_sudo( "chown -R #{fetch(:webserver_user,user)}:#{fetch(:webserver_group,user)} #{latest_release}/" + ezp_legacy_path( "var" ) )
277
278
 
278
279
  # needed even if we just want to run 'bin/php/ezpgenerateautoloads.php' with --extension
279
280
  # autoload seems to be mandatory for "old" version such as 4.0, 4.1, ...
@@ -281,7 +282,7 @@ namespace :capez do
281
282
  autoload_path = File.join( latest_release, ezp_legacy_path( 'autoload' ) )
282
283
  run( "if [ ! -d #{autoload_path} ]; then mkdir -p #{autoload_path}; fi;" )
283
284
  capez_puts_done
284
- run( "chown -R #{fetch(:webserver_user,user)}:#{fetch(:webserver_group,user)} #{autoload_path}" )
285
+ try_sudo( "chown -R #{fetch(:webserver_user,user)}:#{fetch(:webserver_group,user)} #{autoload_path}" )
285
286
  end
286
287
 
287
288
  desc <<-DESC
@@ -291,18 +292,18 @@ namespace :capez do
291
292
  puts( "\n--> Symlinks" )
292
293
 
293
294
  print_dotted( "var/storage" )
294
- run( "ln -s #{shared_path}/var/storage #{latest_release}/" + ezp_legacy_path( "var/storage" ) )
295
+ try_sudo( "ln -s #{shared_path}/var/storage #{latest_release}/" + ezp_legacy_path( "var/storage" ) )
295
296
  capez_puts_done
296
297
 
297
298
  storage_directories.each{ |sd|
298
299
  print_dotted( "var/#{sd}/storage" )
299
- run( "ln -s #{shared_path}/var/#{sd}/storage #{latest_release}/" + ezp_legacy_path( "var/#{sd}/storage" ), :as => webserver_user )
300
+ try_sudo( "ln -s #{shared_path}/var/#{sd}/storage #{latest_release}/" + ezp_legacy_path( "var/#{sd}/storage" ), :as => webserver_user )
300
301
  #run( "chmod -h g+w #{latest_release}/var/#{sd}/storage")
301
302
  capez_puts_done
302
303
  }
303
304
 
304
- run( "chmod -R g+w #{latest_release}/" + ezp_legacy_path( "var" ) )
305
- run( "chown -R #{fetch(:webserver_user,user)}:#{fetch(:webserver_group,user)} #{shared_path}/var")
305
+ try_sudo( "chmod -R g+w #{latest_release}/" + ezp_legacy_path( "var" ) )
306
+ try_sudo( "chown -R #{fetch(:webserver_user,user)}:#{fetch(:webserver_group,user)} #{shared_path}/var")
306
307
  end
307
308
 
308
309
  desc <<-DESC
@@ -349,7 +350,7 @@ namespace :capez do
349
350
  end
350
351
 
351
352
  end
352
- # End of namespace :capez:var
353
+ # End of namespace ezpublish:var
353
354
 
354
355
  # TODO : cache management must be aware of cluster setup namespace :autoloads do
355
356
  namespace :autoloads do
@@ -370,14 +371,14 @@ namespace :capez do
370
371
  end
371
372
  end
372
373
  end
373
- # End of namespace :capez:autoloads
374
+ # End of namespace ezpublish:autoloads
374
375
 
375
376
  # Should be transformed in a simple function (not aimed to be called as a Cap task...)
377
+ # Considers that your main git repo is at the top of your eZ Publish install
378
+ # If changes are detected, then ask the user to continue or not
376
379
  namespace :dev do
377
380
  desc <<-DESC
378
- Checks changes on your local installation
379
- Considers that your main git repo is at the top of your eZ Publish install
380
- If changes are detected, then ask the user to continue or not
381
+ Check if there are any changes on your local installation based on what your scm knows
381
382
  DESC
382
383
  task :local_check do
383
384
  if "#{scm}" != "git" then
data/lib/db.rb CHANGED
@@ -62,6 +62,6 @@ namespace :db do
62
62
  end
63
63
 
64
64
  def get_backup_dir
65
- return "extension/alcapon/backups/database"
65
+ return "#{ezp_legacy_path('extension/alcapon/backups/database')}"
66
66
  end
67
67
  end
@@ -6,14 +6,14 @@ after "deploy:finalize_update" do
6
6
  if fetch( :shared_children_group, false )
7
7
  shared_children.map { |d| run( "chgrp -R #{shared_children_group} #{shared_path}/#{d.split('/').last}") }
8
8
  end
9
- capez.var.init_release
10
- capez.var.link
11
- capez.settings.deploy
12
- capez.autoloads.generate
13
- #capez.cache.clear
9
+ ezpublish.var.init_release
10
+ ezpublish.var.link
11
+ ezpublish.settings.deploy
12
+ ezpublish.autoloads.generate
13
+ #ezpublish.cache.clear
14
14
  end
15
15
 
16
- namespace :capez do
16
+ namespace :ezpublish do
17
17
 
18
18
  namespace :cache do
19
19
  desc <<-DESC
@@ -3,66 +3,20 @@ puts "Running AlCapON for eZ Publish 5"
3
3
  set :ezp_legacy, "ezpublish_legacy"
4
4
  set :ezp_app, "ezpublish"
5
5
 
6
+ load 'ezpublish5/deploy'
7
+ load 'ezpublish5/ezpublish'
8
+
6
9
  after "deploy:finalize_update" do
7
10
  if fetch( :shared_children_group, false )
8
11
  shared_children.map { |d| run( "chgrp -R #{shared_children_group} #{shared_path}/#{d.split('/').last}") }
9
12
  end
10
- capez.var.init_release
11
- capez.var.link
12
- capez.autoloads.generate
13
- capez.settings.deploy
13
+ ezpublish.var.init_release
14
+ ezpublish.var.link
15
+ ezpublish.autoloads.generate
16
+ ezpublish.settings.deploy
14
17
  if ( fetch( :ezp5_regenerate_config, false ) )
15
- capez.settings.configure
18
+ ezpublish.settings.configure
16
19
  end
17
- capez.assets.install
20
+ ezpublish.assets.install
18
21
  end
19
22
 
20
- namespace :capez do
21
-
22
- namespace :cache do
23
- desc <<-DESC
24
- Clear caches the way it is configured in ezpublish.rb
25
- DESC
26
- # Caches are just cleared for the primary server
27
- # Multiple server platform are supposed to use a cluster configuration (eZDFS/eZDBFS)
28
- # and cache management is done via expiry.php which is managed by the cluster API
29
- # TODO : make it ezp5 aware
30
- task :clear, :roles => :web, :only => { :primary => true } do
31
- puts( "\n--> Clearing caches #{'with --purge'.red if cache_purge}" )
32
- cache_list.each { |cache_tag|
33
- print_dotted( "#{cache_tag}" )
34
- capture "cd #{current_path}/#{ezp_legacy_path} && sudo -u #{webserver_user} php bin/php/ezcache.php --clear-tag=#{cache_tag}#{' --purge' if cache_purge}"
35
- capez_puts_done
36
- }
37
- end
38
- end
39
-
40
- namespace :assets do
41
- desc <<-DESC
42
- Install assets (ezp5 only)
43
- DESC
44
- task :install do
45
- print_dotted( "\n--> Generating web assets in #{fetch('ezp5_assets_path','web')}" )
46
- capture( "cd #{latest_release} && sudo -u #{webserver_user} php ezpublish/console assets:install --symlink #{fetch('ezp5_assets_path','web')}" )
47
- capture( "cd #{latest_release} && sudo -u #{webserver_user} php ezpublish/console ezpublish:legacy:assets_install --symlink #{fetch('ezp5_assets_path','web')}" )
48
- capez_puts_done
49
- end
50
- end
51
-
52
- namespace :settings do
53
- desc <<-DESC
54
- Generate yml (ezp5) based on ini (ezp4)
55
- DESC
56
- task :configure do
57
- print_dotted( "\n--> Generating ezp5 configuration files from ezp4 ones" )
58
- if( fetch('ezp5_siteaccess_groupname',false) != false && fetch('ezp5_admin_siteaccess',false) != false )
59
- capture( "cd #{latest_release} && sudo -u #{webserver_user} php ezpublish/console ezpublish:configure --env=#{fetch('ezp5_env','prod')} #{ezp5_siteaccess_groupname} #{ezp5_admin_siteaccess}" )
60
- else
61
- abort( "Since version 0.4.3, you need to set ezp5_siteaccess_groupname & ezp5_admin_siteaccess".red )
62
- end
63
- capez_puts_done
64
- end
65
-
66
- end
67
-
68
- end
File without changes
@@ -0,0 +1,49 @@
1
+ namespace :ezpublish do
2
+
3
+ namespace :cache do
4
+ desc <<-DESC
5
+ Clear caches the way it is configured in ezpublish.rb
6
+ DESC
7
+ # Caches are just cleared for the primary server
8
+ # Multiple server platform are supposed to use a cluster configuration (eZDFS/eZDBFS)
9
+ # and cache management is done via expiry.php which is managed by the cluster API
10
+ # TODO : make it ezp5 aware
11
+ task :clear, :roles => :web, :only => { :primary => true } do
12
+ puts( "\n--> Clearing caches #{'with --purge'.red if cache_purge}" )
13
+ cache_list.each { |cache_tag|
14
+ print_dotted( "#{cache_tag}" )
15
+ capture "cd #{current_path}/#{ezp_legacy_path} && sudo -u #{webserver_user} php bin/php/ezcache.php --clear-tag=#{cache_tag}#{' --purge' if cache_purge}"
16
+ capez_puts_done
17
+ }
18
+ end
19
+ end
20
+
21
+ namespace :assets do
22
+ desc <<-DESC
23
+ Install assets (ezp5 only)
24
+ DESC
25
+ task :install do
26
+ print_dotted( "\n--> Generating web assets in #{fetch('ezp5_assets_path','web')}" )
27
+ capture( "cd #{latest_release} && sudo -u #{webserver_user} php ezpublish/console assets:install --symlink #{fetch('ezp5_assets_path','web')}" )
28
+ capture( "cd #{latest_release} && sudo -u #{webserver_user} php ezpublish/console ezpublish:legacy:assets_install --symlink #{fetch('ezp5_assets_path','web')}" )
29
+ capez_puts_done
30
+ end
31
+ end
32
+
33
+ namespace :settings do
34
+ desc <<-DESC
35
+ Generate yml (ezp5) based on ini (ezp4)
36
+ DESC
37
+ task :configure do
38
+ print_dotted( "\n--> Generating ezp5 configuration files from ezp4 ones" )
39
+ if( fetch('ezp5_siteaccess_groupname',false) != false && fetch('ezp5_admin_siteaccess',false) != false )
40
+ capture( "cd #{latest_release} && sudo -u #{webserver_user} php ezpublish/console ezpublish:configure --env=#{fetch('ezp5_env','prod')} #{ezp5_siteaccess_groupname} #{ezp5_admin_siteaccess}" )
41
+ else
42
+ abort( "Since version 0.4.3, you need to set ezp5_siteaccess_groupname & ezp5_admin_siteaccess".red )
43
+ end
44
+ capez_puts_done
45
+ end
46
+
47
+ end
48
+
49
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 4
8
- - 5
9
- version: 0.4.5
8
+ - 6
9
+ version: 0.4.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Arnaud Lafon
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2012-12-14 00:00:00 +01:00
17
+ date: 2013-03-12 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -58,6 +58,8 @@ files:
58
58
  - lib/db.rb
59
59
  - lib/ext/spinner.rb
60
60
  - lib/ezpublish4.rb
61
+ - lib/ezpublish5/deploy.rb
62
+ - lib/ezpublish5/ezpublish.rb
61
63
  - lib/ezpublish5.rb
62
64
  - lib/utils.rb
63
65
  - README.md