caterpillar 0.9.0 → 0.9.1
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/ChangeLog +8 -0
- data/generators/caterpillar/templates/config/portlets.rb +9 -5
- data/lib/caterpillar.rb +8 -5
- data/lib/caterpillar/liferay.rb +9 -3
- data/lib/caterpillar/task.rb +117 -16
- data/lib/java/rails-portlet-0.5.2.jar +0 -0
- metadata +5 -3
- data/lib/caterpillar/version.rb +0 -9
data/ChangeLog
ADDED
|
@@ -6,11 +6,15 @@ Caterpillar::Config.new do |portlet|
|
|
|
6
6
|
portlet.container = Liferay
|
|
7
7
|
# portlet.container.version = '5.1.1'
|
|
8
8
|
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
|
|
9
|
+
# If you want to install the Rails-portlet JAR into the container, the container
|
|
10
|
+
# WEB-INF will be used.
|
|
11
|
+
#
|
|
12
|
+
# Since liferay-display-ext.xml does not exist, all portlets are categorized in
|
|
13
|
+
# liferay-display.xml. Caterpillar parses this file and appends Rails portlets.
|
|
14
|
+
#
|
|
15
|
+
# No changes are made to any of the files in this directory while making XML,
|
|
16
|
+
# only the deploy and install tasks make any changes.
|
|
17
|
+
portlet.container.root = '/usr/local/liferay/'
|
|
14
18
|
|
|
15
19
|
# The hostname and port.
|
|
16
20
|
# By default the values are taken from the request.
|
data/lib/caterpillar.rb
CHANGED
|
@@ -4,12 +4,14 @@
|
|
|
4
4
|
# software license details.
|
|
5
5
|
#++
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
module Caterpillar
|
|
8
|
+
VERSION='0.9.1'
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
this_dir = File.dirname(File.expand_path(
|
|
11
|
+
this_file = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
|
|
12
|
+
this_dir = File.dirname(File.expand_path(this_file))
|
|
13
|
+
|
|
14
|
+
CATERPILLAR_LIBS=this_dir
|
|
13
15
|
|
|
14
16
|
require 'find'
|
|
15
17
|
|
|
@@ -22,6 +24,7 @@ Find.find(this_dir) do |file|
|
|
|
22
24
|
next
|
|
23
25
|
end
|
|
24
26
|
else
|
|
25
|
-
require file
|
|
27
|
+
# do not require this file twice
|
|
28
|
+
require file if file[/.rb$/] and File.basename(file) != File.basename(this_file)
|
|
26
29
|
end
|
|
27
|
-
end
|
|
30
|
+
end
|
data/lib/caterpillar/liferay.rb
CHANGED
|
@@ -12,15 +12,21 @@ module Caterpillar
|
|
|
12
12
|
# Liferay version
|
|
13
13
|
attr_accessor :version
|
|
14
14
|
|
|
15
|
-
#
|
|
16
|
-
attr_accessor :
|
|
15
|
+
# the installation directory
|
|
16
|
+
attr_accessor :root
|
|
17
17
|
|
|
18
18
|
def initialize(version='5.1.1')
|
|
19
19
|
@version = version
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
+
# The location of Liferay's WEB-INF folder for XML analyzation.
|
|
23
|
+
# This is relative to installation directory (self.root)
|
|
24
|
+
def WEB_INF
|
|
25
|
+
raise 'Configure container root folder' unless self.root
|
|
26
|
+
File.join(self.root,'webapps','ROOT','WEB-INF')
|
|
27
|
+
end
|
|
28
|
+
|
|
22
29
|
def analyze(type)
|
|
23
|
-
raise 'Configure WEB-INF' unless self.WEB_INF
|
|
24
30
|
require 'hpricot'
|
|
25
31
|
return nil unless type==:native
|
|
26
32
|
|
data/lib/caterpillar/task.rb
CHANGED
|
@@ -38,7 +38,6 @@ module Caterpillar
|
|
|
38
38
|
|
|
39
39
|
# The main task.
|
|
40
40
|
# Reads the configuration file and launches appropriate tasks.
|
|
41
|
-
# Defines the rake task prefix 'jsr'.
|
|
42
41
|
def initialize(name = :usage, config = nil, tasks = :define_tasks)
|
|
43
42
|
@name = name
|
|
44
43
|
@config = Util.eval_configuration(config)
|
|
@@ -62,18 +61,21 @@ module Caterpillar
|
|
|
62
61
|
define_liferayportlets_task
|
|
63
62
|
define_migrate_task
|
|
64
63
|
define_rollback_task
|
|
64
|
+
define_jar_install_task
|
|
65
|
+
define_jar_uninstall_task
|
|
66
|
+
define_jar_version_task
|
|
65
67
|
end
|
|
66
68
|
|
|
67
69
|
# the main XML generator task
|
|
68
70
|
def define_main_task
|
|
69
71
|
desc 'Create all XML files according to configuration'
|
|
70
|
-
tasks = [:parse,"#{@name}:
|
|
72
|
+
tasks = [:parse,"#{@name}:portlet"]
|
|
71
73
|
if @config.container.kind_of? Liferay
|
|
72
|
-
tasks << "#{@name}:
|
|
73
|
-
tasks << "#{@name}:
|
|
74
|
+
tasks << "#{@name}:liferayportletapp"
|
|
75
|
+
tasks << "#{@name}:liferaydisplay"
|
|
74
76
|
end
|
|
75
77
|
tasks << "portlets" # finally print produced portlets
|
|
76
|
-
task :
|
|
78
|
+
task :xml => tasks
|
|
77
79
|
end
|
|
78
80
|
|
|
79
81
|
def define_usage_task
|
|
@@ -155,7 +157,7 @@ module Caterpillar
|
|
|
155
157
|
|
|
156
158
|
# Writes the portlet.xml file
|
|
157
159
|
def define_portletxml_task
|
|
158
|
-
@name = :
|
|
160
|
+
@name = :xml
|
|
159
161
|
# set the output filename
|
|
160
162
|
if @config.container.kind_of? Liferay
|
|
161
163
|
file = 'portlet-ext.xml'
|
|
@@ -163,8 +165,8 @@ module Caterpillar
|
|
|
163
165
|
file = 'portlet.xml'
|
|
164
166
|
end
|
|
165
167
|
with_namespace_and_config do |name, config|
|
|
166
|
-
desc
|
|
167
|
-
task
|
|
168
|
+
desc 'Create JSR286 portlet XML'
|
|
169
|
+
task :portlet do
|
|
168
170
|
system('touch %s' % file)
|
|
169
171
|
f=File.open(file,'w')
|
|
170
172
|
f.write Portlet.xml(@portlets)
|
|
@@ -176,11 +178,11 @@ module Caterpillar
|
|
|
176
178
|
|
|
177
179
|
# Writes liferay-portlet-ext.xml
|
|
178
180
|
def define_liferayportletappxml_task
|
|
179
|
-
@name = :
|
|
181
|
+
@name = :xml
|
|
180
182
|
file = 'liferay-portlet-ext.xml'
|
|
181
183
|
with_namespace_and_config do |name, config|
|
|
182
184
|
desc 'Create Liferay portlet XML'
|
|
183
|
-
task
|
|
185
|
+
task :liferayportletapp do
|
|
184
186
|
system('touch %s' % file)
|
|
185
187
|
f=File.open(file,'w')
|
|
186
188
|
f.write config.container.portletapp_xml(@portlets)
|
|
@@ -192,11 +194,11 @@ module Caterpillar
|
|
|
192
194
|
|
|
193
195
|
# Writes liferay-display.xml
|
|
194
196
|
def define_liferaydisplayxml_task
|
|
195
|
-
@name = :
|
|
197
|
+
@name = :xml
|
|
196
198
|
file = 'liferay-display.xml'
|
|
197
199
|
with_namespace_and_config do |name, config|
|
|
198
|
-
desc
|
|
199
|
-
task
|
|
200
|
+
desc 'Create Liferay display XML'
|
|
201
|
+
task :liferaydisplay do
|
|
200
202
|
system('touch %s' % file)
|
|
201
203
|
f=File.open(file,'w')
|
|
202
204
|
f.write config.container.display_xml(@portlets)
|
|
@@ -207,10 +209,10 @@ module Caterpillar
|
|
|
207
209
|
end
|
|
208
210
|
|
|
209
211
|
def define_liferayportlets_task
|
|
210
|
-
@name = :
|
|
212
|
+
@name = :liferay
|
|
211
213
|
with_namespace_and_config do |name, config|
|
|
212
|
-
desc 'Analyses native Liferay
|
|
213
|
-
task
|
|
214
|
+
desc 'Analyses native Liferay portlet-display XML'
|
|
215
|
+
task :portlets do
|
|
214
216
|
@portlets = config.container.analyze(:native)
|
|
215
217
|
print_portlets(@portlets)
|
|
216
218
|
end
|
|
@@ -241,6 +243,7 @@ module Caterpillar
|
|
|
241
243
|
end
|
|
242
244
|
|
|
243
245
|
def define_rollback_task
|
|
246
|
+
@name = :db
|
|
244
247
|
with_namespace_and_config do |name, config|
|
|
245
248
|
desc "Wipes out Caterpillar database tables"
|
|
246
249
|
task :rollback => :environment do
|
|
@@ -254,6 +257,100 @@ module Caterpillar
|
|
|
254
257
|
end
|
|
255
258
|
end
|
|
256
259
|
|
|
260
|
+
def define_jar_install_task
|
|
261
|
+
@name = :jar
|
|
262
|
+
with_namespace_and_config do |name, config|
|
|
263
|
+
desc 'Installs Rails-portlet JAR into the portlet container'
|
|
264
|
+
task :install do
|
|
265
|
+
raise 'Only Liferay is supported' unless @config.container.kind_of? Liferay
|
|
266
|
+
require 'find'
|
|
267
|
+
|
|
268
|
+
portlet_jar = nil
|
|
269
|
+
old_jar = nil
|
|
270
|
+
version = nil
|
|
271
|
+
source = File.join(CATERPILLAR_LIBS,'java')
|
|
272
|
+
target = File.join(@config.container.WEB_INF,'lib')
|
|
273
|
+
|
|
274
|
+
Find.find(source) do |file|
|
|
275
|
+
if File.basename(file) =~ /rails-portlet/
|
|
276
|
+
portlet_jar = file
|
|
277
|
+
version = file[/(\d.\d.\d).jar/,1]
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
# check for previous installs..
|
|
282
|
+
Find.find(target) do |file|
|
|
283
|
+
if File.basename(file) =~ /rails-portlet/
|
|
284
|
+
old_version = file[/(\d.\d.\d).jar/,1]
|
|
285
|
+
# check if there's an update available
|
|
286
|
+
if version.gsub(/\./,'').to_i > old_version.gsub(/\./,'').to_i
|
|
287
|
+
info 'Rails-portlet version %s is found, but an update is available.' % old_version
|
|
288
|
+
old_jar = file
|
|
289
|
+
else
|
|
290
|
+
info 'Rails-portlet version %s is already installed.' % old_version
|
|
291
|
+
exit 0
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
info 'Installing Rails-portlet version %s to %s' % [version, target]
|
|
297
|
+
system('cp %s %s' % [portlet_jar,target])
|
|
298
|
+
if old_jar
|
|
299
|
+
info 'Removing old version'
|
|
300
|
+
system('rm -f %s' % old_jar)
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
end
|
|
304
|
+
end
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
def define_jar_uninstall_task
|
|
308
|
+
@name = :jar
|
|
309
|
+
with_namespace_and_config do |name, config|
|
|
310
|
+
desc 'Uninstalls Rails-portlet JAR from the portlet container'
|
|
311
|
+
task :uninstall do
|
|
312
|
+
raise 'Only Liferay is supported' unless @config.container.kind_of? Liferay
|
|
313
|
+
require 'find'
|
|
314
|
+
target = File.join(@config.container.WEB_INF,'lib')
|
|
315
|
+
|
|
316
|
+
Find.find(target) do |file|
|
|
317
|
+
if File.basename(file) =~ /rails-portlet/
|
|
318
|
+
version = file[/(\d.\d.\d).jar/,1]
|
|
319
|
+
info 'Uninstalling Rails-portlet version %s from %s' % [version, target]
|
|
320
|
+
system('rm -f %s' % file)
|
|
321
|
+
exit 0
|
|
322
|
+
end
|
|
323
|
+
end
|
|
324
|
+
|
|
325
|
+
info 'Rails-portlet was not found in %s' % target
|
|
326
|
+
exit 1
|
|
327
|
+
end
|
|
328
|
+
end
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
def define_jar_version_task
|
|
332
|
+
@name = :jar
|
|
333
|
+
with_namespace_and_config do |name, config|
|
|
334
|
+
desc 'Checks the installed Rails-portlet version'
|
|
335
|
+
task :version do
|
|
336
|
+
raise 'Only Liferay is supported' unless @config.container.kind_of? Liferay
|
|
337
|
+
require 'find'
|
|
338
|
+
target = File.join(@config.container.WEB_INF,'lib')
|
|
339
|
+
|
|
340
|
+
Find.find(target) do |file|
|
|
341
|
+
if File.basename(file) =~ /rails-portlet/
|
|
342
|
+
version = file[/(\d.\d.\d).jar/,1]
|
|
343
|
+
info 'Rails-portlet version %s found in %s' % [version, target]
|
|
344
|
+
exit 0
|
|
345
|
+
end
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
info 'Rails-portlet was not found in %s' % target
|
|
349
|
+
exit 1
|
|
350
|
+
end
|
|
351
|
+
end
|
|
352
|
+
end
|
|
353
|
+
|
|
257
354
|
def with_namespace_and_config
|
|
258
355
|
name, config = @name, @config
|
|
259
356
|
namespace name do
|
|
@@ -279,6 +376,10 @@ module Caterpillar
|
|
|
279
376
|
end
|
|
280
377
|
end
|
|
281
378
|
|
|
379
|
+
def info(msg)
|
|
380
|
+
STDOUT.puts ' * ' + msg
|
|
381
|
+
end
|
|
382
|
+
|
|
282
383
|
|
|
283
384
|
|
|
284
385
|
end
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: caterpillar
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.9.
|
|
4
|
+
version: 0.9.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mikael Lammentausta
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2008-12-
|
|
12
|
+
date: 2008-12-18 00:00:00 +02:00
|
|
13
13
|
default_executable: caterpillar
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -43,15 +43,17 @@ extra_rdoc_files:
|
|
|
43
43
|
- LICENSES.txt
|
|
44
44
|
files:
|
|
45
45
|
- Rakefile
|
|
46
|
+
- ChangeLog
|
|
46
47
|
- install.rb
|
|
47
48
|
- init.rb
|
|
49
|
+
- lib/java
|
|
50
|
+
- lib/java/rails-portlet-0.5.2.jar
|
|
48
51
|
- lib/caterpillar
|
|
49
52
|
- lib/caterpillar/config.rb
|
|
50
53
|
- lib/caterpillar/navigation.rb
|
|
51
54
|
- lib/caterpillar/liferay_portlet.rb
|
|
52
55
|
- lib/caterpillar/usage.rb
|
|
53
56
|
- lib/caterpillar/liferay.rb
|
|
54
|
-
- lib/caterpillar/version.rb
|
|
55
57
|
- lib/caterpillar/portlet.rb
|
|
56
58
|
- lib/caterpillar/parser.rb
|
|
57
59
|
- lib/caterpillar/util.rb
|