ztk 0.2.1 → 0.2.2
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/lib/ztk/base.rb +6 -2
- data/lib/ztk/command.rb +14 -5
- data/lib/ztk/ssh.rb +13 -5
- data/lib/ztk/version.rb +1 -1
- metadata +3 -3
data/lib/ztk/base.rb
CHANGED
@@ -94,8 +94,12 @@ module ZTK
|
|
94
94
|
|
95
95
|
if !block_given?
|
96
96
|
raise BaseError, "You must supply a block to the log method!"
|
97
|
-
elsif (@config.logger.level
|
98
|
-
|
97
|
+
elsif (@config.logger.level <= ZTK::Logger.const_get(log_level.to_s.upcase))
|
98
|
+
if @config.logger.respond_to?(:logdev)
|
99
|
+
@config.logger.logdev.write(yield)
|
100
|
+
else
|
101
|
+
@config.logger.instance_variable_get(:@logdev).instance_variable_get(:@dev).write(yield)
|
102
|
+
end
|
99
103
|
end
|
100
104
|
end
|
101
105
|
|
data/lib/ztk/command.rb
CHANGED
@@ -64,6 +64,14 @@ module ZTK
|
|
64
64
|
# cmd = ZTK::Command.new
|
65
65
|
# puts cmd.exec("hostname -f").inspect
|
66
66
|
def exec(command, options={})
|
67
|
+
|
68
|
+
def log_header(tag)
|
69
|
+
count = 8
|
70
|
+
sep = ("=" * count)
|
71
|
+
header = [sep, "[ #{tag} ]", sep, "[ #{self.inspect} ]", sep, "[ #{tag} ]", sep].join
|
72
|
+
"#{header}\n"
|
73
|
+
end
|
74
|
+
|
67
75
|
options = OpenStruct.new({ :exit_code => 0, :silence => false }.merge(options))
|
68
76
|
log(:debug) { "options(#{options.inspect})" }
|
69
77
|
log(:debug) { "command(#{command.inspect})" }
|
@@ -94,7 +102,7 @@ module ZTK
|
|
94
102
|
reader_writer_key = {parent_stdout_reader => :stdout, parent_stderr_reader => :stderr}
|
95
103
|
reader_writer_map = {parent_stdout_reader => @config.stdout, parent_stderr_reader => @config.stderr}
|
96
104
|
|
97
|
-
direct_log(:debug) { "
|
105
|
+
direct_log(:debug) { log_header("STARTED") }
|
98
106
|
loop do
|
99
107
|
break if reader_writer_map.keys.all?{ |reader| reader.eof? }
|
100
108
|
|
@@ -106,26 +114,27 @@ module ZTK
|
|
106
114
|
case reader_writer_key[socket]
|
107
115
|
when :stdout then
|
108
116
|
if !stdout_header
|
109
|
-
direct_log(:debug) { "
|
117
|
+
direct_log(:debug) { log_header("STDOUT") }
|
110
118
|
stdout_header = true
|
111
119
|
stderr_header = false
|
112
120
|
end
|
113
121
|
reader_writer_map[socket].write(data) unless options.silence
|
122
|
+
direct_log(:debug) { data }
|
114
123
|
|
115
124
|
when :stderr then
|
116
125
|
if !stderr_header
|
117
|
-
direct_log(:
|
126
|
+
direct_log(:warn) { log_header("STDERR") }
|
118
127
|
stderr_header = true
|
119
128
|
stdout_header = false
|
120
129
|
end
|
121
130
|
reader_writer_map[socket].write(data) unless options.silence
|
131
|
+
direct_log(:warn) { data }
|
122
132
|
end
|
123
133
|
|
124
|
-
direct_log(:debug) { data }
|
125
134
|
output += data
|
126
135
|
end
|
127
136
|
end
|
128
|
-
direct_log(:debug) { "
|
137
|
+
direct_log(:debug) { log_header("STOPPED") }
|
129
138
|
|
130
139
|
Process.waitpid(pid)
|
131
140
|
|
data/lib/ztk/ssh.rb
CHANGED
@@ -175,6 +175,14 @@ module ZTK
|
|
175
175
|
# end
|
176
176
|
# puts ssh.exec("hostname -f").inspect
|
177
177
|
def exec(command, options={})
|
178
|
+
|
179
|
+
def log_header(tag)
|
180
|
+
count = 8
|
181
|
+
sep = ("=" * count)
|
182
|
+
header = [sep, "[ #{tag} ]", sep, "[ #{self.inspect} ]", sep, "[ #{tag} ]", sep].join
|
183
|
+
"#{header}\n"
|
184
|
+
end
|
185
|
+
|
178
186
|
log(:debug) { "config(#{@config.inspect})" }
|
179
187
|
log(:info) { "exec(#{command.inspect}, #{options.inspect})" }
|
180
188
|
|
@@ -190,14 +198,14 @@ module ZTK
|
|
190
198
|
|
191
199
|
channel = ssh.open_channel do |chan|
|
192
200
|
log(:debug) { "Channel opened." }
|
193
|
-
direct_log(:debug) { "
|
201
|
+
direct_log(:debug) { log_header("OPENED") }
|
194
202
|
|
195
203
|
chan.exec(command) do |ch, success|
|
196
204
|
raise SSHError, "Could not execute '#{command}'." unless success
|
197
205
|
|
198
206
|
ch.on_data do |c, data|
|
199
207
|
if !stdout_header
|
200
|
-
direct_log(:debug) { "
|
208
|
+
direct_log(:debug) { log_header("STDOUT") }
|
201
209
|
stdout_header = true
|
202
210
|
stderr_header = false
|
203
211
|
end
|
@@ -209,11 +217,11 @@ module ZTK
|
|
209
217
|
|
210
218
|
ch.on_extended_data do |c, type, data|
|
211
219
|
if !stderr_header
|
212
|
-
direct_log(:
|
220
|
+
direct_log(:warn) { log_header("STDERR") }
|
213
221
|
stderr_header = true
|
214
222
|
stdout_header = false
|
215
223
|
end
|
216
|
-
direct_log(:
|
224
|
+
direct_log(:warn) { data }
|
217
225
|
|
218
226
|
@config.stderr.print(data) unless options.silence
|
219
227
|
output += data
|
@@ -227,7 +235,7 @@ module ZTK
|
|
227
235
|
end
|
228
236
|
channel.wait
|
229
237
|
|
230
|
-
direct_log(:debug) { "
|
238
|
+
direct_log(:debug) { log_header("CLOSED") }
|
231
239
|
log(:debug) { "Channel closed." }
|
232
240
|
end
|
233
241
|
|
data/lib/ztk/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ztk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -212,7 +212,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
212
212
|
version: '0'
|
213
213
|
segments:
|
214
214
|
- 0
|
215
|
-
hash: -
|
215
|
+
hash: -3237864687113483412
|
216
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
217
217
|
none: false
|
218
218
|
requirements:
|
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
221
|
version: '0'
|
222
222
|
segments:
|
223
223
|
- 0
|
224
|
-
hash: -
|
224
|
+
hash: -3237864687113483412
|
225
225
|
requirements: []
|
226
226
|
rubyforge_project:
|
227
227
|
rubygems_version: 1.8.24
|