ztk 1.0.0.rc.1 → 1.0.0
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/background.rb +4 -1
- data/lib/ztk/base.rb +1 -1
- data/lib/ztk/benchmark.rb +2 -1
- data/lib/ztk/command.rb +7 -2
- data/lib/ztk/config.rb +12 -2
- data/lib/ztk/ssh.rb +2 -1
- data/lib/ztk/version.rb +1 -1
- metadata +8 -5
data/lib/ztk/background.rb
CHANGED
@@ -21,7 +21,7 @@ require "base64"
|
|
21
21
|
|
22
22
|
module ZTK
|
23
23
|
|
24
|
-
# ZTK::Background Error Class
|
24
|
+
# ZTK::Background General Error Class
|
25
25
|
#
|
26
26
|
# @author Zachary Patten <zachary@jovelabs.net>
|
27
27
|
class BackgroundError < Error; end
|
@@ -106,6 +106,7 @@ module ZTK
|
|
106
106
|
attr_accessor :pid, :result
|
107
107
|
|
108
108
|
# @param [Hash] configuration Configuration options hash.
|
109
|
+
#
|
109
110
|
def initialize(configuration={})
|
110
111
|
super({
|
111
112
|
}.merge(configuration))
|
@@ -121,6 +122,7 @@ module ZTK
|
|
121
122
|
# @yieldreturn [Object] Block can return any object to be marshalled back to
|
122
123
|
# the parent processes.
|
123
124
|
# @return [Integer] Returns the pid of the child process forked.
|
125
|
+
#
|
124
126
|
def process(&block)
|
125
127
|
!block_given? and log_and_raise(BackgroundError, "You must supply a block to the process method!")
|
126
128
|
|
@@ -167,6 +169,7 @@ module ZTK
|
|
167
169
|
# @return [Array<pid, status, data>] An array containing the pid,
|
168
170
|
# status and data returned from the process block. If wait2() fails nil
|
169
171
|
# is returned.
|
172
|
+
#
|
170
173
|
def wait
|
171
174
|
config.ui.logger.debug { "wait" }
|
172
175
|
pid, status = (Process.wait2(@pid) rescue nil)
|
data/lib/ztk/base.rb
CHANGED
data/lib/ztk/benchmark.rb
CHANGED
@@ -21,7 +21,7 @@ require 'benchmark'
|
|
21
21
|
|
22
22
|
module ZTK
|
23
23
|
|
24
|
-
# ZTK::Benchmark Error Class
|
24
|
+
# ZTK::Benchmark General Error Class
|
25
25
|
#
|
26
26
|
# @author Zachary Patten <zachary@jovelabs.net>
|
27
27
|
class BenchmarkError < Error; end
|
@@ -87,6 +87,7 @@ module ZTK
|
|
87
87
|
# @yield Block should execute the tasks to be benchmarked.
|
88
88
|
# @yieldreturn [Object] The return value of the block is ignored.
|
89
89
|
# @return [Float] The benchmark time.
|
90
|
+
#
|
90
91
|
def bench(options={}, &block)
|
91
92
|
options = Base.build_config({
|
92
93
|
:use_spinner => true
|
data/lib/ztk/command.rb
CHANGED
@@ -23,7 +23,6 @@ require "timeout"
|
|
23
23
|
module ZTK
|
24
24
|
|
25
25
|
# ZTK::Command Error Class
|
26
|
-
#
|
27
26
|
# @author Zachary Patten <zachary@jovelabs.net>
|
28
27
|
class CommandError < Error; end
|
29
28
|
|
@@ -36,7 +35,8 @@ module ZTK
|
|
36
35
|
# If we wanted to redirect STDOUT and STDERR to a StringIO we can do this:
|
37
36
|
#
|
38
37
|
# std_combo = StringIO.new
|
39
|
-
#
|
38
|
+
# ui = ZTK::UI.new(:stdout => std_combo, :stderr => std_combo)
|
39
|
+
# cmd = ZTK::Command.new(:ui => ui)
|
40
40
|
#
|
41
41
|
# @author Zachary Patten <zachary@jovelabs.net>
|
42
42
|
class Command < ZTK::Base
|
@@ -62,6 +62,7 @@ module ZTK
|
|
62
62
|
#
|
63
63
|
# cmd = ZTK::Command.new
|
64
64
|
# puts cmd.exec("hostname -f").inspect
|
65
|
+
#
|
65
66
|
def exec(command, options={})
|
66
67
|
options = OpenStruct.new({ :exit_code => 0, :silence => false }.merge(options))
|
67
68
|
|
@@ -175,11 +176,15 @@ module ZTK
|
|
175
176
|
|
176
177
|
private
|
177
178
|
|
179
|
+
# Returns a string in the format of "user@hostname" for the current
|
180
|
+
# shell.
|
178
181
|
def tag
|
179
182
|
@hostname ||= %x(hostname -f).chomp
|
180
183
|
"#{ENV['USER']}@#{@hostname}"
|
181
184
|
end
|
182
185
|
|
186
|
+
# Formats a header suitable for writing to the direct logger when logging
|
187
|
+
# sessions.
|
183
188
|
def log_header(what)
|
184
189
|
count = 8
|
185
190
|
sep = ("=" * count)
|
data/lib/ztk/config.rb
CHANGED
@@ -21,7 +21,7 @@ require 'ostruct'
|
|
21
21
|
|
22
22
|
module ZTK
|
23
23
|
|
24
|
-
# ZTK::Config Error Class
|
24
|
+
# ZTK::Config General Error Class
|
25
25
|
#
|
26
26
|
# @author Zachary Patten <zachary@jovelabs.net>
|
27
27
|
class ConfigError < Error; end
|
@@ -69,6 +69,7 @@ module ZTK
|
|
69
69
|
#
|
70
70
|
# This will add the *configuration* attribute to the base class and create
|
71
71
|
# a new *OpenStruct* object assigning it to the *configuration* attribute.
|
72
|
+
#
|
72
73
|
def self.extended(base)
|
73
74
|
class << base
|
74
75
|
attr_accessor :configuration
|
@@ -78,14 +79,16 @@ module ZTK
|
|
78
79
|
end
|
79
80
|
|
80
81
|
# Loads a configuration from a file.
|
82
|
+
#
|
81
83
|
def from_file(filename)
|
82
|
-
self.instance_eval(IO.read(filename), filename
|
84
|
+
self.instance_eval(IO.read(filename), filename)
|
83
85
|
end
|
84
86
|
|
85
87
|
# Yields the configuration OpenStruct object to a block.
|
86
88
|
#
|
87
89
|
# @yield [configuration] Pass the configuration OpenStruct object to the
|
88
90
|
# specified block.
|
91
|
+
#
|
89
92
|
def config(&block)
|
90
93
|
block and block.call(self.configuration)
|
91
94
|
end
|
@@ -96,6 +99,7 @@ module ZTK
|
|
96
99
|
# key to return.
|
97
100
|
#
|
98
101
|
# @return The value currently assigned to the configuration key.
|
102
|
+
#
|
99
103
|
def [](key)
|
100
104
|
_get(key)
|
101
105
|
end
|
@@ -108,31 +112,37 @@ module ZTK
|
|
108
112
|
# key.
|
109
113
|
#
|
110
114
|
# @return The value assigned to the configuration key.
|
115
|
+
#
|
111
116
|
def []=(key, value)
|
112
117
|
_set(key, value)
|
113
118
|
end
|
114
119
|
|
115
120
|
# @see Hash#keys
|
121
|
+
#
|
116
122
|
def keys
|
117
123
|
self.configuration.send(:table).keys
|
118
124
|
end
|
119
125
|
|
120
126
|
# @see Hash#has_key?
|
127
|
+
#
|
121
128
|
def has_key?(key)
|
122
129
|
self.configuration.send(:table).has_key?(key)
|
123
130
|
end
|
124
131
|
|
125
132
|
# @see Hash#merge
|
133
|
+
#
|
126
134
|
def merge(hash)
|
127
135
|
self.configuration.send(:table).merge(hash)
|
128
136
|
end
|
129
137
|
|
130
138
|
# @see Hash#merge!
|
139
|
+
#
|
131
140
|
def merge!(hash)
|
132
141
|
self.configuration.send(:table).merge!(hash)
|
133
142
|
end
|
134
143
|
|
135
144
|
# Handles method calls for our configuration keys.
|
145
|
+
#
|
136
146
|
def method_missing(method_symbol, *method_args)
|
137
147
|
if method_args.length > 0
|
138
148
|
_set(method_symbol, method_args.first)
|
data/lib/ztk/ssh.rb
CHANGED
@@ -38,7 +38,8 @@ module ZTK
|
|
38
38
|
# If we wanted to redirect STDOUT and STDERR to a StringIO we can do this:
|
39
39
|
#
|
40
40
|
# std_combo = StringIO.new
|
41
|
-
#
|
41
|
+
# ui = ZTK::UI.new(:stdout => std_combo, :stderr => std_combo)
|
42
|
+
# ssh = ZTK::SSH.new(:ui => ui)
|
42
43
|
#
|
43
44
|
# If you want to specify SSH options you can:
|
44
45
|
#
|
data/lib/ztk/version.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ztk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Zachary Patten
|
@@ -250,13 +250,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
250
250
|
version: '0'
|
251
251
|
segments:
|
252
252
|
- 0
|
253
|
-
hash:
|
253
|
+
hash: 3551649041852268044
|
254
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
255
|
none: false
|
256
256
|
requirements:
|
257
|
-
- - ! '
|
257
|
+
- - ! '>='
|
258
258
|
- !ruby/object:Gem::Version
|
259
|
-
version:
|
259
|
+
version: '0'
|
260
|
+
segments:
|
261
|
+
- 0
|
262
|
+
hash: 3551649041852268044
|
260
263
|
requirements: []
|
261
264
|
rubyforge_project:
|
262
265
|
rubygems_version: 1.8.24
|