ztk 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|