capistrano-jdk-installer 0.0.2 → 0.0.3
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 +4 -0
- data/lib/capistrano-jdk-installer.rb +85 -56
- data/lib/capistrano-jdk-installer/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -51,6 +51,10 @@ Following options are available to manage your JDK installation.
|
|
51
51
|
* `:java_cmd` - the `java` command on remote machines.
|
52
52
|
* `:java_cmd_local` - the `java` command on local machine.
|
53
53
|
* `:java_checksum_cmd` - use specified command to compare JDK archives. use `md5sum` by default.
|
54
|
+
* `:java_version` - specify a string to identify JDK version. by default, it will be generated from `:java_version_name`.
|
55
|
+
* `:java_release` - specify a string to identify JDK release. by default, it will be generated from `:java_version_name`.
|
56
|
+
* `:java_deployer_file` - specify a string to identify JDK archive. by default, it will be generated from `:java_version_name`.
|
57
|
+
* `:java_deployee_file` - specify a string to identify JDK archive. by default, it will be generated from `:java_version_name`.
|
54
58
|
|
55
59
|
## Contributing
|
56
60
|
|
@@ -39,6 +39,7 @@ module Capistrano
|
|
39
39
|
|
40
40
|
def upload_archive(from, to, options={}, &block)
|
41
41
|
mode = options.delete(:mode)
|
42
|
+
run("mkdir -p #{File.dirname(to)}")
|
42
43
|
execute_on_servers(options) { |servers|
|
43
44
|
targets = servers.map { |server| sessions[server] }
|
44
45
|
if dry_run
|
@@ -72,7 +73,7 @@ module Capistrano
|
|
72
73
|
|
73
74
|
def extract_archive(archive, destination)
|
74
75
|
case archive
|
75
|
-
when /\.bin$/
|
76
|
+
when /\.(bin|sh)$/
|
76
77
|
"( cd #{File.dirname(destination)} && yes | sh #{archive} )"
|
77
78
|
when /\.dmg$/
|
78
79
|
if java_update_number
|
@@ -110,8 +111,8 @@ module Capistrano
|
|
110
111
|
File.join(File.expand_path('.'), 'tools', 'java')
|
111
112
|
}
|
112
113
|
_cset(:java_home) {
|
113
|
-
case
|
114
|
-
when /
|
114
|
+
case java_deployee_file
|
115
|
+
when /macosx/i
|
115
116
|
if java_update_number
|
116
117
|
File.join("/Library", "Java", "JavaVirtualMachines",
|
117
118
|
"jdk%s_%02d.jdk" % [java_inner_version, java_update_number],
|
@@ -130,8 +131,8 @@ module Capistrano
|
|
130
131
|
end
|
131
132
|
}
|
132
133
|
_cset(:java_home_local) {
|
133
|
-
case
|
134
|
-
when /
|
134
|
+
case java_deployer_file
|
135
|
+
when /macosx/i
|
135
136
|
if java_update_number
|
136
137
|
File.join("/Library", "Java", "JavaVirtualMachines",
|
137
138
|
"jdk%s_%02d.jdk" % [java_inner_version, java_update_number],
|
@@ -160,42 +161,35 @@ module Capistrano
|
|
160
161
|
}
|
161
162
|
_cset(:java_version_info) {
|
162
163
|
case java_version_name
|
163
|
-
when /^(1\.4\.(\d+))(?:
|
164
|
-
when /^(1\.5\.(\d+))(?:
|
165
|
-
when /^(\d+)(?:u(\d+))?$/
|
164
|
+
when /^(1\.4\.(\d+))(?:[_u]([0-9]+))?$/ then [ $1, '1.4', $2, $3 ]
|
165
|
+
when /^(1\.5\.(\d+))(?:[_u]([0-9]+))?$/ then [ $1, '5', $2, $3 ]
|
166
|
+
when /^(\d+)(?:u(\d+))?$/ then [ "1.#{$1}.0", $1, 0, $2 ]
|
166
167
|
else
|
167
168
|
abort("Could not parse JDK version name: #{java_version_name}")
|
168
169
|
end
|
169
170
|
}
|
170
171
|
_cset(:java_inner_version) { java_version_info[0] } # e.g. "1.7.0"
|
171
|
-
_cset(:java_major_version) { java_version_info[1] } # e.g.
|
172
|
-
_cset(:java_minor_version) { java_version_info[2] } # e.g.
|
173
|
-
_cset(:java_update_number) { java_version_info[3] } # e.g.
|
172
|
+
_cset(:java_major_version) { java_version_info[1] } # e.g. 7
|
173
|
+
_cset(:java_minor_version) { java_version_info[2] } # e.g. 0
|
174
|
+
_cset(:java_update_number) { java_version_info[3] } # e.g. 6
|
174
175
|
_cset(:java_version) {
|
175
176
|
"JDK #{java_major_version}"
|
176
177
|
}
|
177
178
|
_cset(:java_release) {
|
178
179
|
case java_major_version
|
179
|
-
when '1.4'
|
180
|
+
when '1.4', '5'
|
181
|
+
jdk = java_major_version == '1.4' ? 'j2sdk' : 'jdk'
|
180
182
|
if java_update_number
|
181
|
-
|
183
|
+
'%s-%s_%02d-oth-JPR' % [jdk, java_inner_version, java_update_number]
|
182
184
|
else
|
183
|
-
|
185
|
+
'%s-%s-oth-JPR' % [jdk, java_inner_version]
|
184
186
|
end
|
185
|
-
|
186
|
-
if java_update_number
|
187
|
-
"Java SE Development Kit #{java_major_version}.#{java_minor_version} Update #{java_update_number}"
|
188
|
-
else
|
189
|
-
"Java SE Development Kit #{java_major_version}.#{java_minor_version}"
|
190
|
-
end
|
191
|
-
when '6', '7'
|
187
|
+
else
|
192
188
|
if java_update_number
|
193
|
-
|
189
|
+
'jdk-%du%d-oth-JPR' % [java_major_version, java_update_number]
|
194
190
|
else
|
195
|
-
|
191
|
+
'jdk-%d-oth-JPR' % [java_major_version]
|
196
192
|
end
|
197
|
-
else
|
198
|
-
abort("Unknown JDK version: #{java_major_version}")
|
199
193
|
end
|
200
194
|
}
|
201
195
|
def java_platform(ostype, arch)
|
@@ -203,35 +197,56 @@ module Capistrano
|
|
203
197
|
when /^Darwin$/i
|
204
198
|
case arch
|
205
199
|
when /^i[3-7]86$/i, /^x86_64$/i
|
206
|
-
|
200
|
+
"macosx-x64"
|
207
201
|
else
|
208
|
-
"
|
202
|
+
"macosx-#{arch.downcase}"
|
209
203
|
end
|
210
204
|
when /^Linux$/i
|
211
205
|
case arch
|
212
206
|
when /^i[3-7]86$/i
|
213
|
-
|
207
|
+
"linux-i586"
|
214
208
|
when /^x86_64$/i
|
215
|
-
|
209
|
+
case java_major_version
|
210
|
+
when '1.4', '5'
|
211
|
+
"linux-amd64"
|
212
|
+
else
|
213
|
+
"linux-x64"
|
214
|
+
end
|
216
215
|
else
|
217
|
-
"
|
216
|
+
"linux-#{arch.downcase}"
|
218
217
|
end
|
219
218
|
when /^Solaris$/i
|
220
219
|
case arch
|
221
220
|
when /^sparc$/i
|
222
|
-
"
|
221
|
+
"solaris-sparc"
|
223
222
|
when /^sparcv9$/i
|
224
|
-
"
|
223
|
+
"solaris-sparcv9"
|
225
224
|
when /^i[3-7]86$/i
|
226
|
-
"
|
225
|
+
"solaris-i586"
|
227
226
|
when /^x86_64$/i
|
228
|
-
"
|
227
|
+
"solaris-x64"
|
229
228
|
else
|
230
|
-
"
|
229
|
+
"solaris-#{arch.downcase}"
|
230
|
+
end
|
231
|
+
end
|
232
|
+
end
|
233
|
+
def java_file(ostype, arch)
|
234
|
+
case java_major_version
|
235
|
+
when '1.4', '5'
|
236
|
+
jdk = java_major_version == '1.4' ? 'j2sdk' : 'jdk'
|
237
|
+
if java_update_number
|
238
|
+
'%s-%s_%02d-%s' % [jdk, java_inner_version.gsub('.', '_'), java_update_number, java_platform(ostype, arch)]
|
239
|
+
else
|
240
|
+
'%s-%s-%s' % [jdk, java_inner_version.gsub('.', '_'), java_platform(ostype, arch)]
|
241
|
+
end
|
242
|
+
else
|
243
|
+
if java_update_number
|
244
|
+
'jdk-%du%d-%s' % [java_major_version, java_update_number, java_platform(ostype, arch)]
|
245
|
+
else
|
246
|
+
'jdk-%d-%s' % [java_major_version, java_platform(ostype, arch)]
|
231
247
|
end
|
232
248
|
end
|
233
249
|
end
|
234
|
-
|
235
250
|
## hudson.tools.JDKInstaller.json
|
236
251
|
_cset(:java_mechanize_agent) {
|
237
252
|
Mechanize.log = ::Logger.new(STDERR)
|
@@ -277,30 +292,44 @@ module Capistrano
|
|
277
292
|
abort("Unknown JSON format version: #{version}") if version != 2
|
278
293
|
regex = Regexp.new(Regexp.quote(java_version), Regexp::IGNORECASE)
|
279
294
|
data = java_installer_json['data']
|
280
|
-
|
295
|
+
logger.info("Requested JDK version is #{java_version.dump}.")
|
296
|
+
data.find { |datum|
|
297
|
+
logger.debug("Checking JDK version: #{datum['name'].strip}")
|
298
|
+
regex === datum['name'].strip
|
299
|
+
}
|
281
300
|
}
|
282
301
|
_cset(:java_release_data) {
|
302
|
+
abort("No such JDK version found: #{java_version}") unless java_version_data
|
283
303
|
regex = Regexp.new(Regexp.quote(java_release), Regexp::IGNORECASE)
|
284
304
|
releases = java_version_data['releases']
|
285
|
-
|
305
|
+
logger.info("Requested JDK release is #{java_release.dump}.")
|
306
|
+
releases.find { |release|
|
307
|
+
logger.debug("Checking JDK release: #{release['title'].strip} (#{release['name'].strip})")
|
308
|
+
regex === release['name'].strip or regex === release['title'].strip
|
309
|
+
}
|
286
310
|
}
|
287
311
|
_cset(:java_release_license_title) {
|
312
|
+
abort("No such JDK release found: #{java_version}/#{java_release}") unless java_release_data
|
288
313
|
java_release_data['lictitle']
|
289
314
|
}
|
290
|
-
def
|
315
|
+
def java_file_data(name)
|
316
|
+
abort("No such JDK release found: #{java_version}/#{java_release}") unless java_release_data
|
317
|
+
regex = Regexp.new(Regexp.quote(name.to_s), Regexp::IGNORECASE)
|
318
|
+
logger.info("Requested JDK file is #{name.dump}.")
|
291
319
|
files = java_release_data['files']
|
292
|
-
|
293
|
-
|
320
|
+
files.find { |data|
|
321
|
+
logger.debug("Checking JDK file: #{data['title'].strip} (#{data['name'].strip})")
|
322
|
+
regex === data['name'] or regex === data['title']
|
294
323
|
}
|
295
|
-
abort("Not supported on specified JDK release: #{regex.inspect}") unless data
|
296
|
-
data
|
297
324
|
end
|
298
325
|
|
299
326
|
## settings for local machine
|
300
|
-
_cset(:
|
327
|
+
_cset(:java_deployer_file) {
|
328
|
+
java_file(`uname -s`.strip, `uname -m`.strip)
|
329
|
+
}
|
301
330
|
_cset(:java_deployer_archive_uri) {
|
302
|
-
|
303
|
-
|
331
|
+
data = java_file_data(java_deployer_file)
|
332
|
+
abort("No such JDK release found for specified platform: #{java_version}/#{java_release}/#{java_deployer_file}") unless data
|
304
333
|
data['filepath']
|
305
334
|
}
|
306
335
|
_cset(:java_deployer_archive) {
|
@@ -311,10 +340,12 @@ module Capistrano
|
|
311
340
|
}
|
312
341
|
|
313
342
|
## settings for remote machines
|
314
|
-
_cset(:
|
343
|
+
_cset(:java_deployee_file) {
|
344
|
+
java_file(capture('uname -s').strip, capture('uname -m').strip)
|
345
|
+
}
|
315
346
|
_cset(:java_deployee_archive_uri) {
|
316
|
-
|
317
|
-
|
347
|
+
data = java_file_data(java_deployee_file)
|
348
|
+
abort("No such JDK release found for specified platform: #{java_version}/#{java_release}/#{java_deployee_file}") unless data
|
318
349
|
data['filepath']
|
319
350
|
}
|
320
351
|
_cset(:java_deployee_archive) {
|
@@ -333,14 +364,11 @@ module Capistrano
|
|
333
364
|
## tasks
|
334
365
|
desc("Install java locally.")
|
335
366
|
task(:setup_locally, :except => { :no_release => true }) {
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
}
|
341
|
-
end
|
367
|
+
transaction {
|
368
|
+
download_locally
|
369
|
+
install_locally
|
370
|
+
}
|
342
371
|
}
|
343
|
-
after 'deploy:setup', 'java:setup'
|
344
372
|
|
345
373
|
task(:download_locally, :except => { :no_release => true }) {
|
346
374
|
download_archive(java_deployer_archive_uri, java_deployer_archive_local)
|
@@ -368,6 +396,7 @@ module Capistrano
|
|
368
396
|
download
|
369
397
|
upload_archive(java_deployee_archive_local, java_deployee_archive)
|
370
398
|
install
|
399
|
+
setup_locally if fetch(:java_setup_locally, false)
|
371
400
|
}
|
372
401
|
end
|
373
402
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-jdk-installer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|