hudson 0.3.0.beta.5 → 0.3.0.beta.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.
- data/README.md +1 -2
- data/features/{create_jobs.feature → manage_jobs.feature} +13 -1
- data/features/{managing_remote_servers.feature → manage_remote_servers.feature} +0 -0
- data/features/{adding_slave_nodes.feature → manage_slave_nodes.feature} +0 -0
- data/hudson.gemspec +3 -3
- data/lib/hudson.rb +1 -1
- data/lib/hudson/api.rb +8 -2
- data/lib/hudson/cli.rb +17 -4
- data/lib/hudson/job_config_builder.rb +2 -2
- data/spec/fixtures/rails.multi.config.xml +0 -6
- data/spec/fixtures/rails.single.config.triggers.xml +84 -0
- data/spec/fixtures/rails.single.config.xml +0 -6
- data/spec/fixtures/rubygem.config.xml +0 -6
- data/spec/job_config_builder_spec.rb +1 -0
- metadata +8 -9
- data/bin/hudson.compiled.rbc +0 -197
- data/lib/hudson/api.rbc +0 -1540
data/README.md
CHANGED
@@ -53,12 +53,11 @@ To list Jobs/Projects on a Hudson server:
|
|
53
53
|
To add Project (create a Job) on a Hudson server:
|
54
54
|
|
55
55
|
Usage: hudson create [project_path] [options]
|
56
|
-
-n, --name [dir_name] name of hudson job
|
57
56
|
-p, --port [3001] find hudson on specified port
|
58
57
|
--host [localhost] find hudson on specified host
|
59
58
|
-h, --help
|
60
59
|
|
61
|
-
For all commands, if flags for `host:port` are not provided, it will use `$HUDSON_HOST` and `$HUDSON_PORT`
|
60
|
+
For all commands, if flags for `host:port` are not provided, it will use either `$HUDSON_HOST` and `$HUDSON_PORT` or the previous target Hudson CI server.
|
62
61
|
|
63
62
|
Developer Instructions
|
64
63
|
======================
|
@@ -32,12 +32,24 @@ Feature: Create jobs
|
|
32
32
|
When I run local executable "hudson" with arguments "create . --host localhost --port 3010"
|
33
33
|
Then I should see "Cannot determine project SCM. Currently supported:"
|
34
34
|
|
35
|
-
Scenario: Recreate job
|
35
|
+
Scenario: Recreate a job
|
36
36
|
Given I am in the "ruby" project folder
|
37
37
|
When I create a job
|
38
38
|
Then I should see "Added project 'ruby' to Hudson."
|
39
39
|
When I recreate a job
|
40
40
|
Then I should see "Added project 'ruby' to Hudson."
|
41
41
|
|
42
|
+
Scenario: Remove a job
|
43
|
+
Given I am in the "ruby" project folder
|
44
|
+
When I create a job
|
45
|
+
Then I should see "Added project 'ruby' to Hudson."
|
46
|
+
When I run local executable "hudson" with arguments "remove . --host localhost --port 3010"
|
47
|
+
Then I should see "Removed project 'ruby' from Hudson."
|
48
|
+
|
49
|
+
Scenario: Remove a job that doesn't exist gives error
|
50
|
+
Given I am in the "ruby" project folder
|
51
|
+
When I run local executable "hudson" with arguments "remove . --host localhost --port 3010"
|
52
|
+
Then I should see "ERROR: Failed to delete project 'ruby'."
|
53
|
+
|
42
54
|
|
43
55
|
|
File without changes
|
File without changes
|
data/hudson.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{hudson}
|
5
|
-
s.version = "0.3.0.beta.
|
5
|
+
s.version = "0.3.0.beta.6"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Charles Lowell", "Dr Nic Williams"]
|
9
|
-
s.date = %q{2010-10-
|
9
|
+
s.date = %q{2010-10-28}
|
10
10
|
s.default_executable = %q{hudson}
|
11
11
|
s.description = %q{A suite of utilities for bringing continous integration to your projects (not the other way around) with hudson CI}
|
12
12
|
s.email = ["cowboyd@thefrontside.net", "drnicwilliams@gmail.com"]
|
13
13
|
s.executables = ["hudson"]
|
14
|
-
s.files = ["bin", "bin/hudson", "
|
14
|
+
s.files = ["bin", "bin/hudson", "features", "features/development.feature", "features/fixtures", "features/fixtures/projects", "features/fixtures/projects/ruby", "features/fixtures/projects/ruby/Rakefile", "features/listing_jobs.feature", "features/manage_jobs.feature", "features/manage_remote_servers.feature", "features/manage_slave_nodes.feature", "features/server.feature", "features/step_definitions", "features/step_definitions/common_steps.rb", "features/step_definitions/fixture_project_steps.rb", "features/step_definitions/hudson_steps.rb", "features/step_definitions/scm_steps.rb", "features/support", "features/support/common.rb", "features/support/env.rb", "features/support/hooks.rb", "features/support/matchers.rb", "Gemfile", "Gemfile.lock", "hudson.gemspec", "lib", "lib/hudson", "lib/hudson/api.rb", "lib/hudson/cli", "lib/hudson/cli/formatting.rb", "lib/hudson/cli.rb", "lib/hudson/config.rb", "lib/hudson/core_ext", "lib/hudson/core_ext/object", "lib/hudson/core_ext/object/blank.rb", "lib/hudson/hudson-cli.jar", "lib/hudson/hudson.war", "lib/hudson/job_config_builder.rb", "lib/hudson/plugins", "lib/hudson/plugins/git.hpi", "lib/hudson/plugins/github.hpi", "lib/hudson/plugins/greenballs.hpi", "lib/hudson/plugins/rake.hpi", "lib/hudson/plugins/ruby.hpi", "lib/hudson/project_scm.rb", "lib/hudson/remote.rb", "lib/hudson.rb", "Rakefile", "README.md", "spec", "spec/fixtures", "spec/fixtures/ec2_global.config.xml", "spec/fixtures/rails.multi.config.xml", "spec/fixtures/rails.single.config.triggers.xml", "spec/fixtures/rails.single.config.xml", "spec/fixtures/rubygem.config.xml", "spec/fixtures/therubyracer.config.xml", "spec/job_config_builder_spec.rb", "spec/spec_helper.rb"]
|
15
15
|
s.homepage = %q{http://github.com/cowboyd/hudson.rb}
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = %q{hudson}
|
data/lib/hudson.rb
CHANGED
data/lib/hudson/api.rb
CHANGED
@@ -43,6 +43,7 @@ module Hudson
|
|
43
43
|
cache_base_uri
|
44
44
|
true
|
45
45
|
else
|
46
|
+
puts res.body
|
46
47
|
if res.body =~ /A job already exists with the name/
|
47
48
|
if options[:override]
|
48
49
|
delete_job(name)
|
@@ -61,8 +62,9 @@ module Hudson
|
|
61
62
|
|
62
63
|
# Attempts to delete a job +name+
|
63
64
|
def self.delete_job(name)
|
64
|
-
|
65
|
-
|
65
|
+
uri = URI.parse base_uri
|
66
|
+
res = Net::HTTP.start(uri.host, uri.port) { |http| http.post("#{job_url name}/doDelete", {}) }
|
67
|
+
res.code.to_i == 302
|
66
68
|
end
|
67
69
|
|
68
70
|
def self.summary
|
@@ -154,5 +156,9 @@ module Hudson
|
|
154
156
|
Hudson::Config.config["base_uri"] = base_uri
|
155
157
|
Hudson::Config.store!
|
156
158
|
end
|
159
|
+
|
160
|
+
def self.job_url(name)
|
161
|
+
"#{base_uri}/job/#{name}"
|
162
|
+
end
|
157
163
|
end
|
158
164
|
end
|
data/lib/hudson/cli.rb
CHANGED
@@ -46,11 +46,10 @@ module Hudson
|
|
46
46
|
exec(*cmd)
|
47
47
|
end
|
48
48
|
|
49
|
-
desc "create
|
49
|
+
desc "create project_path [options]", "create a build for your project"
|
50
50
|
common_options
|
51
|
-
method_option :name, :banner => "dir_name", :desc => "name of the build"
|
52
51
|
method_option :override, :desc => "override if job exists", :type => :boolean, :default => false
|
53
|
-
def create(project_path
|
52
|
+
def create(project_path)
|
54
53
|
select_hudson_server(options)
|
55
54
|
FileUtils.chdir(project_path) do
|
56
55
|
unless scm = Hudson::ProjectScm.discover
|
@@ -59,7 +58,7 @@ module Hudson
|
|
59
58
|
job_config = Hudson::JobConfigBuilder.new(:rubygem) do |c|
|
60
59
|
c.scm = scm.url
|
61
60
|
end
|
62
|
-
name =
|
61
|
+
name = File.basename(FileUtils.pwd)
|
63
62
|
if Hudson::Api.create_job(name, job_config, {:override => options[:override]})
|
64
63
|
build_url = "#{@uri}/job/#{name.gsub(/\s/,'%20')}/build"
|
65
64
|
puts "Added project '#{name}' to Hudson."
|
@@ -69,6 +68,20 @@ module Hudson
|
|
69
68
|
end
|
70
69
|
end
|
71
70
|
end
|
71
|
+
|
72
|
+
desc "remove PROJECT_PATH", "remove this project's build job from Hudson"
|
73
|
+
common_options
|
74
|
+
def remove(project_path)
|
75
|
+
select_hudson_server(options)
|
76
|
+
FileUtils.chdir(project_path) do
|
77
|
+
name = File.basename(FileUtils.pwd)
|
78
|
+
if Hudson::Api.delete_job(name)
|
79
|
+
puts "Removed project '#{name}' from Hudson."
|
80
|
+
else
|
81
|
+
error "Failed to delete project '#{name}'."
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
72
85
|
|
73
86
|
desc "list [options]", "list jobs on a hudson server"
|
74
87
|
common_options
|
@@ -27,10 +27,10 @@ module Hudson
|
|
27
27
|
b.properties
|
28
28
|
build_scm b
|
29
29
|
b.assignedNode assigned_node if assigned_node
|
30
|
-
b.canRoam
|
30
|
+
b.canRoam !assigned_node
|
31
31
|
b.disabled false
|
32
32
|
b.blockBuildWhenUpstreamBuilding false
|
33
|
-
build_triggers b
|
33
|
+
# build_triggers b
|
34
34
|
b.concurrentBuild false
|
35
35
|
build_axes b if matrix_project
|
36
36
|
build_steps b
|
@@ -36,12 +36,6 @@
|
|
36
36
|
<canRoam>true</canRoam>
|
37
37
|
<disabled>false</disabled>
|
38
38
|
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
|
39
|
-
<triggers class="vector">
|
40
|
-
<hudson.triggers.SCMTrigger>
|
41
|
-
<spec># every minute
|
42
|
-
* * * * *</spec>
|
43
|
-
</hudson.triggers.SCMTrigger>
|
44
|
-
</triggers>
|
45
39
|
<concurrentBuild>false</concurrentBuild>
|
46
40
|
<axes>
|
47
41
|
</axes>
|
@@ -0,0 +1,84 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project>
|
3
|
+
<actions/>
|
4
|
+
<description/>
|
5
|
+
<keepDependencies>false</keepDependencies>
|
6
|
+
<properties/>
|
7
|
+
<scm class="hudson.plugins.git.GitSCM">
|
8
|
+
<configVersion>1</configVersion>
|
9
|
+
<remoteRepositories>
|
10
|
+
<org.spearce.jgit.transport.RemoteConfig>
|
11
|
+
<string>origin</string>
|
12
|
+
<int>5</int>
|
13
|
+
<string>fetch</string>
|
14
|
+
<string>+refs/heads/*:refs/remotes/origin/*</string>
|
15
|
+
<string>receivepack</string>
|
16
|
+
<string>git-upload-pack</string>
|
17
|
+
<string>uploadpack</string>
|
18
|
+
<string>git-upload-pack</string>
|
19
|
+
<string>url</string>
|
20
|
+
<string>git@codebasehq.com:mocra/misc/mocra-web.git</string>
|
21
|
+
<string>tagopt</string>
|
22
|
+
<string/>
|
23
|
+
</org.spearce.jgit.transport.RemoteConfig>
|
24
|
+
</remoteRepositories>
|
25
|
+
<branches>
|
26
|
+
<hudson.plugins.git.BranchSpec>
|
27
|
+
<name>master</name>
|
28
|
+
</hudson.plugins.git.BranchSpec>
|
29
|
+
</branches>
|
30
|
+
<mergeOptions/>
|
31
|
+
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
32
|
+
<clean>false</clean>
|
33
|
+
<choosingStrategy>Default</choosingStrategy>
|
34
|
+
<submoduleCfg class="list"/>
|
35
|
+
</scm>
|
36
|
+
<canRoam>true</canRoam>
|
37
|
+
<disabled>false</disabled>
|
38
|
+
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
|
39
|
+
<triggers class="vector">
|
40
|
+
<hudson.triggers.SCMTrigger>
|
41
|
+
<spec># every minute
|
42
|
+
* * * * *</spec>
|
43
|
+
</hudson.triggers.SCMTrigger>
|
44
|
+
</triggers>
|
45
|
+
<concurrentBuild>false</concurrentBuild>
|
46
|
+
<builders>
|
47
|
+
<hudson.plugins.ruby.Ruby>
|
48
|
+
<command>
|
49
|
+
unless File.exist?("config/database.yml")
|
50
|
+
require 'fileutils'
|
51
|
+
example = Dir["config/database*"].first
|
52
|
+
puts "Using #{example} for config/database.yml"
|
53
|
+
FileUtils.cp example, "config/database.yml"
|
54
|
+
end
|
55
|
+
</command>
|
56
|
+
</hudson.plugins.ruby.Ruby>
|
57
|
+
<hudson.plugins.rake.Rake>
|
58
|
+
<rakeInstallation>(Default)</rakeInstallation>
|
59
|
+
<rakeFile/>
|
60
|
+
<rakeLibDir/>
|
61
|
+
<rakeWorkingDir/>
|
62
|
+
<tasks>db:schema:load</tasks>
|
63
|
+
<silent>false</silent>
|
64
|
+
</hudson.plugins.rake.Rake>
|
65
|
+
<hudson.plugins.rake.Rake>
|
66
|
+
<rakeInstallation>(Default)</rakeInstallation>
|
67
|
+
<rakeFile/>
|
68
|
+
<rakeLibDir/>
|
69
|
+
<rakeWorkingDir/>
|
70
|
+
<tasks>features</tasks>
|
71
|
+
<silent>false</silent>
|
72
|
+
</hudson.plugins.rake.Rake>
|
73
|
+
<hudson.plugins.rake.Rake>
|
74
|
+
<rakeInstallation>(Default)</rakeInstallation>
|
75
|
+
<rakeFile/>
|
76
|
+
<rakeLibDir/>
|
77
|
+
<rakeWorkingDir/>
|
78
|
+
<tasks>spec</tasks>
|
79
|
+
<silent>false</silent>
|
80
|
+
</hudson.plugins.rake.Rake>
|
81
|
+
</builders>
|
82
|
+
<publishers/>
|
83
|
+
<buildWrappers/>
|
84
|
+
</project>
|
@@ -36,12 +36,6 @@
|
|
36
36
|
<canRoam>true</canRoam>
|
37
37
|
<disabled>false</disabled>
|
38
38
|
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
|
39
|
-
<triggers class="vector">
|
40
|
-
<hudson.triggers.SCMTrigger>
|
41
|
-
<spec># every minute
|
42
|
-
* * * * *</spec>
|
43
|
-
</hudson.triggers.SCMTrigger>
|
44
|
-
</triggers>
|
45
39
|
<concurrentBuild>false</concurrentBuild>
|
46
40
|
<builders>
|
47
41
|
<hudson.plugins.ruby.Ruby>
|
@@ -36,12 +36,6 @@
|
|
36
36
|
<canRoam>true</canRoam>
|
37
37
|
<disabled>false</disabled>
|
38
38
|
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
|
39
|
-
<triggers class="vector">
|
40
|
-
<hudson.triggers.SCMTrigger>
|
41
|
-
<spec># every minute
|
42
|
-
* * * * *</spec>
|
43
|
-
</hudson.triggers.SCMTrigger>
|
44
|
-
</triggers>
|
45
39
|
<concurrentBuild>false</concurrentBuild>
|
46
40
|
<axes/>
|
47
41
|
<builders>
|
@@ -37,6 +37,7 @@ describe Hudson::JobConfigBuilder do
|
|
37
37
|
it "builds config.xml" do
|
38
38
|
Hpricot.XML(@config.to_xml).search("assignedNode").size.should == 1
|
39
39
|
Hpricot.XML(@config.to_xml).search("assignedNode").text.should == "my-slave"
|
40
|
+
Hpricot.XML(@config.to_xml).search("canRoam").text.should == "false"
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hudson
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 62196383
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
9
|
- 0
|
10
10
|
- beta
|
11
|
-
-
|
12
|
-
version: 0.3.0.beta.
|
11
|
+
- 6
|
12
|
+
version: 0.3.0.beta.6
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Charles Lowell
|
@@ -18,7 +18,7 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2010-10-
|
21
|
+
date: 2010-10-28 00:00:00 -07:00
|
22
22
|
default_executable:
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
@@ -205,13 +205,12 @@ extra_rdoc_files: []
|
|
205
205
|
|
206
206
|
files:
|
207
207
|
- bin/hudson
|
208
|
-
- bin/hudson.compiled.rbc
|
209
|
-
- features/adding_slave_nodes.feature
|
210
|
-
- features/create_jobs.feature
|
211
208
|
- features/development.feature
|
212
209
|
- features/fixtures/projects/ruby/Rakefile
|
213
210
|
- features/listing_jobs.feature
|
214
|
-
- features/
|
211
|
+
- features/manage_jobs.feature
|
212
|
+
- features/manage_remote_servers.feature
|
213
|
+
- features/manage_slave_nodes.feature
|
215
214
|
- features/server.feature
|
216
215
|
- features/step_definitions/common_steps.rb
|
217
216
|
- features/step_definitions/fixture_project_steps.rb
|
@@ -225,7 +224,6 @@ files:
|
|
225
224
|
- Gemfile.lock
|
226
225
|
- hudson.gemspec
|
227
226
|
- lib/hudson/api.rb
|
228
|
-
- lib/hudson/api.rbc
|
229
227
|
- lib/hudson/cli/formatting.rb
|
230
228
|
- lib/hudson/cli.rb
|
231
229
|
- lib/hudson/config.rb
|
@@ -245,6 +243,7 @@ files:
|
|
245
243
|
- README.md
|
246
244
|
- spec/fixtures/ec2_global.config.xml
|
247
245
|
- spec/fixtures/rails.multi.config.xml
|
246
|
+
- spec/fixtures/rails.single.config.triggers.xml
|
248
247
|
- spec/fixtures/rails.single.config.xml
|
249
248
|
- spec/fixtures/rubygem.config.xml
|
250
249
|
- spec/fixtures/therubyracer.config.xml
|
data/bin/hudson.compiled.rbc
DELETED
@@ -1,197 +0,0 @@
|
|
1
|
-
!RBIX
|
2
|
-
0
|
3
|
-
x
|
4
|
-
M
|
5
|
-
1
|
6
|
-
n
|
7
|
-
n
|
8
|
-
x
|
9
|
-
10
|
10
|
-
__script__
|
11
|
-
i
|
12
|
-
89
|
13
|
-
5
|
14
|
-
7
|
15
|
-
0
|
16
|
-
64
|
17
|
-
47
|
18
|
-
49
|
19
|
-
1
|
20
|
-
1
|
21
|
-
15
|
22
|
-
99
|
23
|
-
43
|
24
|
-
2
|
25
|
-
7
|
26
|
-
3
|
27
|
-
49
|
28
|
-
4
|
29
|
-
1
|
30
|
-
45
|
31
|
-
5
|
32
|
-
6
|
33
|
-
45
|
34
|
-
5
|
35
|
-
7
|
36
|
-
45
|
37
|
-
5
|
38
|
-
8
|
39
|
-
65
|
40
|
-
49
|
41
|
-
9
|
42
|
-
0
|
43
|
-
49
|
44
|
-
10
|
45
|
-
1
|
46
|
-
7
|
47
|
-
11
|
48
|
-
64
|
49
|
-
81
|
50
|
-
12
|
51
|
-
49
|
52
|
-
10
|
53
|
-
1
|
54
|
-
49
|
55
|
-
13
|
56
|
-
1
|
57
|
-
49
|
58
|
-
14
|
59
|
-
1
|
60
|
-
15
|
61
|
-
5
|
62
|
-
45
|
63
|
-
5
|
64
|
-
15
|
65
|
-
65
|
66
|
-
49
|
67
|
-
9
|
68
|
-
0
|
69
|
-
49
|
70
|
-
10
|
71
|
-
1
|
72
|
-
7
|
73
|
-
16
|
74
|
-
64
|
75
|
-
81
|
76
|
-
12
|
77
|
-
47
|
78
|
-
49
|
79
|
-
1
|
80
|
-
1
|
81
|
-
15
|
82
|
-
5
|
83
|
-
7
|
84
|
-
17
|
85
|
-
64
|
86
|
-
47
|
87
|
-
49
|
88
|
-
1
|
89
|
-
1
|
90
|
-
15
|
91
|
-
45
|
92
|
-
18
|
93
|
-
19
|
94
|
-
43
|
95
|
-
20
|
96
|
-
49
|
97
|
-
21
|
98
|
-
0
|
99
|
-
15
|
100
|
-
2
|
101
|
-
11
|
102
|
-
I
|
103
|
-
5
|
104
|
-
I
|
105
|
-
0
|
106
|
-
I
|
107
|
-
0
|
108
|
-
I
|
109
|
-
0
|
110
|
-
n
|
111
|
-
p
|
112
|
-
22
|
113
|
-
s
|
114
|
-
8
|
115
|
-
rubygems
|
116
|
-
x
|
117
|
-
7
|
118
|
-
require
|
119
|
-
x
|
120
|
-
7
|
121
|
-
Globals
|
122
|
-
x
|
123
|
-
2
|
124
|
-
$:
|
125
|
-
x
|
126
|
-
2
|
127
|
-
[]
|
128
|
-
x
|
129
|
-
4
|
130
|
-
File
|
131
|
-
n
|
132
|
-
n
|
133
|
-
n
|
134
|
-
x
|
135
|
-
11
|
136
|
-
active_path
|
137
|
-
x
|
138
|
-
7
|
139
|
-
dirname
|
140
|
-
s
|
141
|
-
17
|
142
|
-
/../lib/hudson.rb
|
143
|
-
x
|
144
|
-
1
|
145
|
-
+
|
146
|
-
x
|
147
|
-
11
|
148
|
-
expand_path
|
149
|
-
x
|
150
|
-
7
|
151
|
-
unshift
|
152
|
-
n
|
153
|
-
s
|
154
|
-
14
|
155
|
-
/../lib/hudson
|
156
|
-
s
|
157
|
-
10
|
158
|
-
hudson/cli
|
159
|
-
x
|
160
|
-
6
|
161
|
-
Hudson
|
162
|
-
n
|
163
|
-
x
|
164
|
-
3
|
165
|
-
CLI
|
166
|
-
x
|
167
|
-
5
|
168
|
-
start
|
169
|
-
p
|
170
|
-
11
|
171
|
-
I
|
172
|
-
0
|
173
|
-
I
|
174
|
-
2
|
175
|
-
I
|
176
|
-
9
|
177
|
-
I
|
178
|
-
3
|
179
|
-
I
|
180
|
-
30
|
181
|
-
I
|
182
|
-
4
|
183
|
-
I
|
184
|
-
45
|
185
|
-
I
|
186
|
-
5
|
187
|
-
I
|
188
|
-
4e
|
189
|
-
I
|
190
|
-
7
|
191
|
-
I
|
192
|
-
59
|
193
|
-
x
|
194
|
-
47
|
195
|
-
/Users/drnic/Projects/gems/hudson.rb/bin/hudson
|
196
|
-
p
|
197
|
-
0
|