nucleon 0.1.3 → 0.1.4
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/Gemfile +7 -3
- data/Gemfile.lock +10 -6
- data/VERSION +1 -1
- data/lib/core/config.rb +9 -5
- data/lib/core/errors.rb +6 -0
- data/lib/core/facade.rb +12 -1
- data/lib/core/manager.rb +23 -13
- data/lib/core/mixin/macro/object_interface.rb +42 -36
- data/lib/core/mixin/macro/plugin_interface.rb +13 -18
- data/lib/core/plugin/action.rb +6 -4
- data/lib/core/plugin/base.rb +3 -3
- data/lib/core/plugin/command.rb +1 -1
- data/lib/core/plugin/project.rb +31 -13
- data/lib/core/util/cli.rb +7 -7
- data/lib/core/util/data.rb +3 -2
- data/lib/core/util/disk.rb +4 -1
- data/lib/core/util/shell.rb +15 -11
- data/lib/core/util/ssh.rb +356 -0
- data/lib/nucleon/command/bash.rb +1 -1
- data/lib/nucleon/event/regex.rb +1 -1
- data/lib/nucleon/project/git.rb +3 -3
- data/lib/nucleon/project/github.rb +6 -11
- data/lib/nucleon_base.rb +8 -2
- data/nucleon.gemspec +12 -8
- metadata +55 -43
data/lib/nucleon/command/bash.rb
CHANGED
@@ -6,7 +6,7 @@ class Bash < Plugin::Command
|
|
6
6
|
#-----------------------------------------------------------------------------
|
7
7
|
# Command plugin interface
|
8
8
|
|
9
|
-
def normalize
|
9
|
+
def normalize(reload)
|
10
10
|
super
|
11
11
|
myself.command = executable(myself)
|
12
12
|
logger.info("Setting command executable to #{command}")
|
data/lib/nucleon/event/regex.rb
CHANGED
data/lib/nucleon/project/git.rb
CHANGED
@@ -6,7 +6,7 @@ class Git < Plugin::Project
|
|
6
6
|
#-----------------------------------------------------------------------------
|
7
7
|
# Project plugin interface
|
8
8
|
|
9
|
-
def normalize
|
9
|
+
def normalize(reload)
|
10
10
|
super
|
11
11
|
end
|
12
12
|
|
@@ -399,7 +399,7 @@ class Git < Plugin::Project
|
|
399
399
|
:flags => flags,
|
400
400
|
:args => [ processed_remote, config.get(:revision, get(:revision, :master)) ]
|
401
401
|
}
|
402
|
-
}, config.get(:provider, :bash)).exec(config) do |op, command, data|
|
402
|
+
}, config.get(:provider, :bash)).exec(config.import({ :quiet => true })) do |op, command, data|
|
403
403
|
block_given? ? yield(op, command, data) : true
|
404
404
|
end
|
405
405
|
|
@@ -430,7 +430,7 @@ class Git < Plugin::Project
|
|
430
430
|
:flags => flags,
|
431
431
|
:args => [ processed_remote, push_branch ]
|
432
432
|
}
|
433
|
-
}, config.get(:provider, :bash)).exec(config) do |op, command, data|
|
433
|
+
}, config.get(:provider, :bash)).exec(config.import({ :quiet => true })) do |op, command, data|
|
434
434
|
block_given? ? yield(op, command, data) : true
|
435
435
|
end
|
436
436
|
|
@@ -10,7 +10,7 @@ class Github < Git
|
|
10
10
|
#-----------------------------------------------------------------------------
|
11
11
|
# Project plugin interface
|
12
12
|
|
13
|
-
def normalize
|
13
|
+
def normalize(reload)
|
14
14
|
if reference = delete(:reference, nil)
|
15
15
|
myself.plugin_name = reference
|
16
16
|
else
|
@@ -44,7 +44,7 @@ class Github < Git
|
|
44
44
|
|
45
45
|
def init_auth
|
46
46
|
super do
|
47
|
-
key_id = ENV['USER'] + '@' +
|
47
|
+
key_id = ENV['USER'] + '@' + Nucleon.ip_address
|
48
48
|
ssh_key = public_key_str
|
49
49
|
|
50
50
|
if private_key && ssh_key
|
@@ -60,16 +60,11 @@ class Github < Git
|
|
60
60
|
break
|
61
61
|
end
|
62
62
|
end
|
63
|
+
|
64
|
+
client.remove_deploy_key(myself.plugin_name, github_id) if github_id && ! keys_match
|
65
|
+
client.add_deploy_key(myself.plugin_name, key_id, ssh_key)
|
66
|
+
verify_key
|
63
67
|
|
64
|
-
if github_id
|
65
|
-
unless keys_match
|
66
|
-
client.edit_deploy_key(myself.plugin_name, github_id, { :key => ssh_key })
|
67
|
-
verify_key
|
68
|
-
end
|
69
|
-
else
|
70
|
-
client.add_deploy_key(myself.plugin_name, key_id, ssh_key)
|
71
|
-
verify_key
|
72
|
-
end
|
73
68
|
|
74
69
|
rescue Exception => error
|
75
70
|
logger.error(error.inspect)
|
data/lib/nucleon_base.rb
CHANGED
@@ -94,7 +94,12 @@ require 'base64'
|
|
94
94
|
require 'yaml'
|
95
95
|
require 'multi_json'
|
96
96
|
|
97
|
-
require '
|
97
|
+
require 'tmpdir'
|
98
|
+
require 'sshkey'
|
99
|
+
|
100
|
+
require 'childprocess'
|
101
|
+
|
102
|
+
require 'thread' # Eventually depreciated?
|
98
103
|
require 'celluloid'
|
99
104
|
require 'celluloid/autostart'
|
100
105
|
|
@@ -157,7 +162,8 @@ nucleon_require(core_dir, :core)
|
|
157
162
|
:cli,
|
158
163
|
:disk,
|
159
164
|
:package,
|
160
|
-
:shell
|
165
|
+
:shell,
|
166
|
+
:ssh
|
161
167
|
].each do |name|
|
162
168
|
nucleon_require(util_dir, name)
|
163
169
|
end
|
data/nucleon.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "nucleon"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Adrian Webb"]
|
12
|
-
s.date = "2014-
|
12
|
+
s.date = "2014-03-05"
|
13
13
|
s.description = "\nA framework that provides a simple foundation for building Ruby applications that are:\n\n* Highly configurable (with both distributed and persistent configurations)\n* Extremely pluggable and extendable\n* Easily parallel\n\nNote: This framework is still very early in development!\n"
|
14
14
|
s.email = "adrian.webb@coralnexus.com"
|
15
15
|
s.executables = ["nucleon"]
|
@@ -62,6 +62,7 @@ Gem::Specification.new do |s|
|
|
62
62
|
"lib/core/util/logger.rb",
|
63
63
|
"lib/core/util/package.rb",
|
64
64
|
"lib/core/util/shell.rb",
|
65
|
+
"lib/core/util/ssh.rb",
|
65
66
|
"lib/nucleon.rb",
|
66
67
|
"lib/nucleon/action/add.rb",
|
67
68
|
"lib/nucleon/action/create.rb",
|
@@ -101,13 +102,14 @@ Gem::Specification.new do |s|
|
|
101
102
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
102
103
|
s.add_runtime_dependency(%q<log4r>, ["~> 1.1"])
|
103
104
|
s.add_runtime_dependency(%q<i18n>, ["~> 0.6"])
|
104
|
-
s.add_runtime_dependency(%q<rgen>, ["~> 0.6"])
|
105
105
|
s.add_runtime_dependency(%q<netrc>, ["~> 0.7"])
|
106
106
|
s.add_runtime_dependency(%q<deep_merge>, ["~> 1.0"])
|
107
107
|
s.add_runtime_dependency(%q<multi_json>, ["~> 1.7"])
|
108
|
+
s.add_runtime_dependency(%q<sshkey>, ["~> 1.6"])
|
109
|
+
s.add_runtime_dependency(%q<childprocess>, ["~> 0.5.0"])
|
110
|
+
s.add_runtime_dependency(%q<celluloid>, ["~> 0.15"])
|
108
111
|
s.add_runtime_dependency(%q<grit>, ["~> 2.5"])
|
109
112
|
s.add_runtime_dependency(%q<octokit>, ["~> 2.7"])
|
110
|
-
s.add_runtime_dependency(%q<celluloid>, ["~> 0.15"])
|
111
113
|
s.add_development_dependency(%q<bundler>, ["~> 1.2"])
|
112
114
|
s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
|
113
115
|
s.add_development_dependency(%q<rspec>, ["~> 2.10"])
|
@@ -116,13 +118,14 @@ Gem::Specification.new do |s|
|
|
116
118
|
else
|
117
119
|
s.add_dependency(%q<log4r>, ["~> 1.1"])
|
118
120
|
s.add_dependency(%q<i18n>, ["~> 0.6"])
|
119
|
-
s.add_dependency(%q<rgen>, ["~> 0.6"])
|
120
121
|
s.add_dependency(%q<netrc>, ["~> 0.7"])
|
121
122
|
s.add_dependency(%q<deep_merge>, ["~> 1.0"])
|
122
123
|
s.add_dependency(%q<multi_json>, ["~> 1.7"])
|
124
|
+
s.add_dependency(%q<sshkey>, ["~> 1.6"])
|
125
|
+
s.add_dependency(%q<childprocess>, ["~> 0.5.0"])
|
126
|
+
s.add_dependency(%q<celluloid>, ["~> 0.15"])
|
123
127
|
s.add_dependency(%q<grit>, ["~> 2.5"])
|
124
128
|
s.add_dependency(%q<octokit>, ["~> 2.7"])
|
125
|
-
s.add_dependency(%q<celluloid>, ["~> 0.15"])
|
126
129
|
s.add_dependency(%q<bundler>, ["~> 1.2"])
|
127
130
|
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
128
131
|
s.add_dependency(%q<rspec>, ["~> 2.10"])
|
@@ -132,13 +135,14 @@ Gem::Specification.new do |s|
|
|
132
135
|
else
|
133
136
|
s.add_dependency(%q<log4r>, ["~> 1.1"])
|
134
137
|
s.add_dependency(%q<i18n>, ["~> 0.6"])
|
135
|
-
s.add_dependency(%q<rgen>, ["~> 0.6"])
|
136
138
|
s.add_dependency(%q<netrc>, ["~> 0.7"])
|
137
139
|
s.add_dependency(%q<deep_merge>, ["~> 1.0"])
|
138
140
|
s.add_dependency(%q<multi_json>, ["~> 1.7"])
|
141
|
+
s.add_dependency(%q<sshkey>, ["~> 1.6"])
|
142
|
+
s.add_dependency(%q<childprocess>, ["~> 0.5.0"])
|
143
|
+
s.add_dependency(%q<celluloid>, ["~> 0.15"])
|
139
144
|
s.add_dependency(%q<grit>, ["~> 2.5"])
|
140
145
|
s.add_dependency(%q<octokit>, ["~> 2.7"])
|
141
|
-
s.add_dependency(%q<celluloid>, ["~> 0.15"])
|
142
146
|
s.add_dependency(%q<bundler>, ["~> 1.2"])
|
143
147
|
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
144
148
|
s.add_dependency(%q<rspec>, ["~> 2.10"])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nucleon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-03-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: log4r
|
16
|
-
requirement: &
|
16
|
+
requirement: &17443440 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *17443440
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: i18n
|
27
|
-
requirement: &
|
27
|
+
requirement: &17442440 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,21 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.6'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rgen
|
38
|
-
requirement: &10353920 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '0.6'
|
44
|
-
type: :runtime
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: *10353920
|
35
|
+
version_requirements: *17442440
|
47
36
|
- !ruby/object:Gem::Dependency
|
48
37
|
name: netrc
|
49
|
-
requirement: &
|
38
|
+
requirement: &17441440 !ruby/object:Gem::Requirement
|
50
39
|
none: false
|
51
40
|
requirements:
|
52
41
|
- - ~>
|
@@ -54,10 +43,10 @@ dependencies:
|
|
54
43
|
version: '0.7'
|
55
44
|
type: :runtime
|
56
45
|
prerelease: false
|
57
|
-
version_requirements: *
|
46
|
+
version_requirements: *17441440
|
58
47
|
- !ruby/object:Gem::Dependency
|
59
48
|
name: deep_merge
|
60
|
-
requirement: &
|
49
|
+
requirement: &17440400 !ruby/object:Gem::Requirement
|
61
50
|
none: false
|
62
51
|
requirements:
|
63
52
|
- - ~>
|
@@ -65,10 +54,10 @@ dependencies:
|
|
65
54
|
version: '1.0'
|
66
55
|
type: :runtime
|
67
56
|
prerelease: false
|
68
|
-
version_requirements: *
|
57
|
+
version_requirements: *17440400
|
69
58
|
- !ruby/object:Gem::Dependency
|
70
59
|
name: multi_json
|
71
|
-
requirement: &
|
60
|
+
requirement: &17439420 !ruby/object:Gem::Requirement
|
72
61
|
none: false
|
73
62
|
requirements:
|
74
63
|
- - ~>
|
@@ -76,32 +65,32 @@ dependencies:
|
|
76
65
|
version: '1.7'
|
77
66
|
type: :runtime
|
78
67
|
prerelease: false
|
79
|
-
version_requirements: *
|
68
|
+
version_requirements: *17439420
|
80
69
|
- !ruby/object:Gem::Dependency
|
81
|
-
name:
|
82
|
-
requirement: &
|
70
|
+
name: sshkey
|
71
|
+
requirement: &17438100 !ruby/object:Gem::Requirement
|
83
72
|
none: false
|
84
73
|
requirements:
|
85
74
|
- - ~>
|
86
75
|
- !ruby/object:Gem::Version
|
87
|
-
version: '
|
76
|
+
version: '1.6'
|
88
77
|
type: :runtime
|
89
78
|
prerelease: false
|
90
|
-
version_requirements: *
|
79
|
+
version_requirements: *17438100
|
91
80
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
93
|
-
requirement: &
|
81
|
+
name: childprocess
|
82
|
+
requirement: &17435380 !ruby/object:Gem::Requirement
|
94
83
|
none: false
|
95
84
|
requirements:
|
96
85
|
- - ~>
|
97
86
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
87
|
+
version: 0.5.0
|
99
88
|
type: :runtime
|
100
89
|
prerelease: false
|
101
|
-
version_requirements: *
|
90
|
+
version_requirements: *17435380
|
102
91
|
- !ruby/object:Gem::Dependency
|
103
92
|
name: celluloid
|
104
|
-
requirement: &
|
93
|
+
requirement: &17432340 !ruby/object:Gem::Requirement
|
105
94
|
none: false
|
106
95
|
requirements:
|
107
96
|
- - ~>
|
@@ -109,10 +98,32 @@ dependencies:
|
|
109
98
|
version: '0.15'
|
110
99
|
type: :runtime
|
111
100
|
prerelease: false
|
112
|
-
version_requirements: *
|
101
|
+
version_requirements: *17432340
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: grit
|
104
|
+
requirement: &17431060 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '2.5'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *17431060
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: octokit
|
115
|
+
requirement: &17429200 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ~>
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '2.7'
|
121
|
+
type: :runtime
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *17429200
|
113
124
|
- !ruby/object:Gem::Dependency
|
114
125
|
name: bundler
|
115
|
-
requirement: &
|
126
|
+
requirement: &17426380 !ruby/object:Gem::Requirement
|
116
127
|
none: false
|
117
128
|
requirements:
|
118
129
|
- - ~>
|
@@ -120,10 +131,10 @@ dependencies:
|
|
120
131
|
version: '1.2'
|
121
132
|
type: :development
|
122
133
|
prerelease: false
|
123
|
-
version_requirements: *
|
134
|
+
version_requirements: *17426380
|
124
135
|
- !ruby/object:Gem::Dependency
|
125
136
|
name: jeweler
|
126
|
-
requirement: &
|
137
|
+
requirement: &17424440 !ruby/object:Gem::Requirement
|
127
138
|
none: false
|
128
139
|
requirements:
|
129
140
|
- - ~>
|
@@ -131,10 +142,10 @@ dependencies:
|
|
131
142
|
version: '2.0'
|
132
143
|
type: :development
|
133
144
|
prerelease: false
|
134
|
-
version_requirements: *
|
145
|
+
version_requirements: *17424440
|
135
146
|
- !ruby/object:Gem::Dependency
|
136
147
|
name: rspec
|
137
|
-
requirement: &
|
148
|
+
requirement: &17423620 !ruby/object:Gem::Requirement
|
138
149
|
none: false
|
139
150
|
requirements:
|
140
151
|
- - ~>
|
@@ -142,10 +153,10 @@ dependencies:
|
|
142
153
|
version: '2.10'
|
143
154
|
type: :development
|
144
155
|
prerelease: false
|
145
|
-
version_requirements: *
|
156
|
+
version_requirements: *17423620
|
146
157
|
- !ruby/object:Gem::Dependency
|
147
158
|
name: rdoc
|
148
|
-
requirement: &
|
159
|
+
requirement: &17422640 !ruby/object:Gem::Requirement
|
149
160
|
none: false
|
150
161
|
requirements:
|
151
162
|
- - ~>
|
@@ -153,10 +164,10 @@ dependencies:
|
|
153
164
|
version: '3.12'
|
154
165
|
type: :development
|
155
166
|
prerelease: false
|
156
|
-
version_requirements: *
|
167
|
+
version_requirements: *17422640
|
157
168
|
- !ruby/object:Gem::Dependency
|
158
169
|
name: yard
|
159
|
-
requirement: &
|
170
|
+
requirement: &17420960 !ruby/object:Gem::Requirement
|
160
171
|
none: false
|
161
172
|
requirements:
|
162
173
|
- - ~>
|
@@ -164,7 +175,7 @@ dependencies:
|
|
164
175
|
version: '0.8'
|
165
176
|
type: :development
|
166
177
|
prerelease: false
|
167
|
-
version_requirements: *
|
178
|
+
version_requirements: *17420960
|
168
179
|
description: ! '
|
169
180
|
|
170
181
|
A framework that provides a simple foundation for building Ruby applications that
|
@@ -233,6 +244,7 @@ files:
|
|
233
244
|
- lib/core/util/logger.rb
|
234
245
|
- lib/core/util/package.rb
|
235
246
|
- lib/core/util/shell.rb
|
247
|
+
- lib/core/util/ssh.rb
|
236
248
|
- lib/nucleon.rb
|
237
249
|
- lib/nucleon/action/add.rb
|
238
250
|
- lib/nucleon/action/create.rb
|