jenkins-war 1.396
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/bin/jenkins.war +111 -0
- data/jenkins-war.gemspec +30 -0
- data/lib/jenkins/jenkins.war +0 -0
- data/lib/jenkins/war.rb +68 -0
- metadata +70 -0
data/bin/jenkins.war
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
require 'ostruct'
|
5
|
+
require File.expand_path(File.dirname(__FILE__) + '/../lib/jenkins/war')
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
options = OpenStruct.new({
|
11
|
+
:home => File.join(ENV['HOME'], ".jenkins", "server"),
|
12
|
+
:port => 3001,
|
13
|
+
:control => 3002,
|
14
|
+
:daemon => false,
|
15
|
+
:kill => false
|
16
|
+
})
|
17
|
+
parser = OptionParser.new
|
18
|
+
parser.banner = "Usage: jenkins.war server [options]"
|
19
|
+
parser.on("--home DIR", String, "use this directory to store server data") {|dir| options.home = dir}
|
20
|
+
parser.on("-p", "--port PORT", Integer, "run jenkins server on this port") {|port| options.port = port}
|
21
|
+
parser.on("-c", "--control PORT", Integer, "set the shutdown/control port") {|control| options.control = control}
|
22
|
+
parser.on("--daemon") {options.daemon = true}
|
23
|
+
parser.on("-k", "--kill") {options.kill = true}
|
24
|
+
parser.on("--logfile PATH", String, "redirect log messages to this file") {|path| options.logfile = path}
|
25
|
+
|
26
|
+
help = proc do |cmd|
|
27
|
+
help = Help.new(parser)
|
28
|
+
if cmd && help.respond_to?(cmd)
|
29
|
+
puts help.send(cmd)
|
30
|
+
else
|
31
|
+
puts "usage: jenkins.war COMMAND [OPTIONS]"
|
32
|
+
puts " jenkins.war help command"
|
33
|
+
puts " jenkins.war version"
|
34
|
+
puts " jenkins.war unpack DESTINATION"
|
35
|
+
puts " jenkins.war classpath"
|
36
|
+
puts " jenkins.war cp DESTINATION"
|
37
|
+
puts " jenkins.war server [OPTIONS]"
|
38
|
+
puts ""
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class Help
|
43
|
+
def initialize(server_options)
|
44
|
+
@server_options = server_options
|
45
|
+
end
|
46
|
+
def help
|
47
|
+
<<-HERE
|
48
|
+
Usage: jenkins.war help COMMAND
|
49
|
+
shows help for the specified command
|
50
|
+
HERE
|
51
|
+
end
|
52
|
+
def version
|
53
|
+
<<-HERE
|
54
|
+
Usage: jenkins.war version
|
55
|
+
displays the version of jenkins represented by this war
|
56
|
+
HERE
|
57
|
+
end
|
58
|
+
def unpack
|
59
|
+
<<-HERE
|
60
|
+
Usage: jenkins.war unpack DESTINATION
|
61
|
+
unpack the jenkins war to directory at DESTINATION
|
62
|
+
HERE
|
63
|
+
end
|
64
|
+
def classpath
|
65
|
+
<<-HERE
|
66
|
+
Usage: jenkins.war classpath
|
67
|
+
return a classpath for jenkins core which can be used for a javac invocation
|
68
|
+
HERE
|
69
|
+
end
|
70
|
+
def cp
|
71
|
+
<<-HERE
|
72
|
+
Usage: jenkins.war cp PATH
|
73
|
+
copy the jenkins.war file to PATH
|
74
|
+
HERE
|
75
|
+
end
|
76
|
+
def location
|
77
|
+
<<-HERE
|
78
|
+
Usage: jenkins.war location
|
79
|
+
prints the actual location on the file system of the jenkins.war
|
80
|
+
HERE
|
81
|
+
end
|
82
|
+
def server
|
83
|
+
@server_options.to_s
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
war = Jenkins::War
|
89
|
+
case cmd = ARGV.shift
|
90
|
+
when "version", "-v", "--version"
|
91
|
+
puts war::VERSION
|
92
|
+
exit
|
93
|
+
when 'unpack'
|
94
|
+
dest = ARGV.first
|
95
|
+
war.unpack(dest)
|
96
|
+
when 'classpath'
|
97
|
+
puts war.classpath
|
98
|
+
when 'cp'
|
99
|
+
dest = ARGV.first
|
100
|
+
war.cp dest
|
101
|
+
when 'server'
|
102
|
+
parser.parse(ARGV)
|
103
|
+
war.server(options)
|
104
|
+
when "help", "-h", "--help"
|
105
|
+
help[ARGV.first]
|
106
|
+
when "location"
|
107
|
+
puts war::LOCATION
|
108
|
+
else
|
109
|
+
help[nil]
|
110
|
+
end
|
111
|
+
|
data/jenkins-war.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{jenkins-war}
|
5
|
+
s.version = "1.396"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Charles Lowell"]
|
9
|
+
s.date = %q{2011-02-03}
|
10
|
+
s.default_executable = %q{jenkins.war}
|
11
|
+
s.description = %q{download and install a specific version of the jenkins war file which can be used for either running a server, or for plugin development}
|
12
|
+
s.email = ["cowboyd@thefrontside.net"]
|
13
|
+
s.executables = ["jenkins.war"]
|
14
|
+
s.files = ["bin", "bin/jenkins.war", "jenkins-war.gemspec", "lib", "lib/jenkins", "lib/jenkins/jenkins.war", "lib/jenkins/war.rb"]
|
15
|
+
s.homepage = %q{http://rubygems.org/gems/jenkins-war}
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{jenkins-war}
|
18
|
+
s.rubygems_version = %q{1.3.7}
|
19
|
+
s.summary = %q{fetch and use a specific jenkins version with rubygems}
|
20
|
+
|
21
|
+
if s.respond_to? :specification_version then
|
22
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
23
|
+
s.specification_version = 3
|
24
|
+
|
25
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
26
|
+
else
|
27
|
+
end
|
28
|
+
else
|
29
|
+
end
|
30
|
+
end
|
Binary file
|
data/lib/jenkins/war.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
module Jenkins
|
3
|
+
module War
|
4
|
+
VERSION = '1.396'
|
5
|
+
LOCATION = File.expand_path(File.join(File.dirname(__FILE__), "jenkins.war"))
|
6
|
+
|
7
|
+
module_function
|
8
|
+
|
9
|
+
def unpack(dest_dir, output = $stdout)
|
10
|
+
target = File.dirname(dest_dir).tap do |dir_of_dest_dir|
|
11
|
+
raise "'#{dir_of_dest_dir}' is not a directory" unless File.directory?(dir_of_dest_dir)
|
12
|
+
end
|
13
|
+
FileUtils.mkdir_p dest_dir
|
14
|
+
Dir.chdir(dest_dir) do
|
15
|
+
sh "jar xvf #{LOCATION}", output
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def cp(dest, output = $stdout)
|
20
|
+
FileUtils.cp(LOCATION, dest)
|
21
|
+
output << "copied #{LOCATION} -> #{dest}\n"
|
22
|
+
end
|
23
|
+
|
24
|
+
def server(options, output = $stdout)
|
25
|
+
home = options.home || File.join(ENV['HOME'], ".jenkins", "server")
|
26
|
+
port = options.port.to_i || 3001
|
27
|
+
control = options.control.to_i || 3002
|
28
|
+
daemon = options.daemon
|
29
|
+
kill = options.kill
|
30
|
+
logfile = options.logfile
|
31
|
+
|
32
|
+
if kill
|
33
|
+
require 'socket'
|
34
|
+
TCPSocket.open("localhost", control) do |sock|
|
35
|
+
sock.write("0")
|
36
|
+
end
|
37
|
+
else
|
38
|
+
javatmp = File.join(home, "javatmp")
|
39
|
+
FileUtils.mkdir_p javatmp
|
40
|
+
ENV['HUDSON_HOME'] = home
|
41
|
+
cmd = ["java", "-Djava.io.tmpdir=#{javatmp}", "-jar", LOCATION]
|
42
|
+
cmd << "--daemon" if daemon
|
43
|
+
cmd << "--logfile=#{File.expand_path(logfile)}" if logfile
|
44
|
+
cmd << "--httpPort=#{port}"
|
45
|
+
cmd << "--controlPort=#{control}"
|
46
|
+
output << "#{cmd.join(" ")}\n"
|
47
|
+
exec(*cmd)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def classpath
|
52
|
+
dest_dir = File.join(ENV['HOME'], '.jenkins', 'wars', VERSION)
|
53
|
+
if File.directory?(dest_dir)
|
54
|
+
"#{dest_dir}/WEB-INF/lib/jenkins-core-#{VERSION}.jar"
|
55
|
+
else
|
56
|
+
FileUtils.mkdir_p(dest_dir)
|
57
|
+
unpack(dest_dir, [])
|
58
|
+
classpath
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def sh(command, output = $stdout)
|
63
|
+
output << command + "\n"
|
64
|
+
output << result = `#{command}`
|
65
|
+
raise result unless $?.success?
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jenkins-war
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 791
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 396
|
9
|
+
version: "1.396"
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Charles Lowell
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-02-03 00:00:00 -06:00
|
18
|
+
default_executable: jenkins.war
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: download and install a specific version of the jenkins war file which can be used for either running a server, or for plugin development
|
22
|
+
email:
|
23
|
+
- cowboyd@thefrontside.net
|
24
|
+
executables:
|
25
|
+
- jenkins.war
|
26
|
+
extensions: []
|
27
|
+
|
28
|
+
extra_rdoc_files: []
|
29
|
+
|
30
|
+
files:
|
31
|
+
- bin/jenkins.war
|
32
|
+
- jenkins-war.gemspec
|
33
|
+
- lib/jenkins/jenkins.war
|
34
|
+
- lib/jenkins/war.rb
|
35
|
+
has_rdoc: true
|
36
|
+
homepage: http://rubygems.org/gems/jenkins-war
|
37
|
+
licenses: []
|
38
|
+
|
39
|
+
post_install_message:
|
40
|
+
rdoc_options: []
|
41
|
+
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
none: false
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
hash: 3
|
50
|
+
segments:
|
51
|
+
- 0
|
52
|
+
version: "0"
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
62
|
+
requirements: []
|
63
|
+
|
64
|
+
rubyforge_project: jenkins-war
|
65
|
+
rubygems_version: 1.3.7
|
66
|
+
signing_key:
|
67
|
+
specification_version: 3
|
68
|
+
summary: fetch and use a specific jenkins version with rubygems
|
69
|
+
test_files: []
|
70
|
+
|