scutil 0.2.4 → 0.3.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/{CHANGELOG → CHANGELOG.md} +5 -0
- data/{README → README.rdoc} +0 -0
- data/lib/scutil.rb +1 -6
- data/lib/scutil/exec.rb +7 -3
- data/scutil.gemspec +7 -6
- data/test/test_scutil.rb +76 -0
- metadata +7 -7
data/{CHANGELOG → CHANGELOG.md}
RENAMED
data/{README → README.rdoc}
RENAMED
File without changes
|
data/lib/scutil.rb
CHANGED
@@ -30,7 +30,7 @@ require 'scutil/connection_cache'
|
|
30
30
|
require 'scutil/system_connection'
|
31
31
|
|
32
32
|
module Scutil
|
33
|
-
SCUTIL_VERSION = '0.
|
33
|
+
SCUTIL_VERSION = '0.3.0'
|
34
34
|
# By default, buffer 10M of data before writing.
|
35
35
|
DEFAULT_OUTPUT_BUFFER_SIZE = 0xA00000
|
36
36
|
# Checks for a command starting with _sudo_ by default.
|
@@ -195,7 +195,6 @@ module Scutil
|
|
195
195
|
end
|
196
196
|
|
197
197
|
channel.exec(cmd)
|
198
|
-
# channel.wait
|
199
198
|
end
|
200
199
|
|
201
200
|
conn.loop
|
@@ -210,8 +209,4 @@ module Scutil
|
|
210
209
|
return exit_status
|
211
210
|
end
|
212
211
|
end
|
213
|
-
|
214
|
-
# def xfer_file(hostname, username, src, dst, direction=:to, command=nil, options={})
|
215
|
-
|
216
|
-
# end
|
217
212
|
end
|
data/lib/scutil/exec.rb
CHANGED
@@ -15,7 +15,7 @@ module Scutil
|
|
15
15
|
class Exec
|
16
16
|
include Scutil
|
17
17
|
attr_reader :hostname,:username
|
18
|
-
|
18
|
+
|
19
19
|
def initialize(hostname, username, options={})
|
20
20
|
@hostname = hostname
|
21
21
|
@username = username
|
@@ -30,9 +30,13 @@ module Scutil
|
|
30
30
|
# specified in the constructor.
|
31
31
|
def exec_command(cmd, output=nil, options={})
|
32
32
|
# Local map has precedence.
|
33
|
-
|
33
|
+
set_options(options)
|
34
34
|
Scutil.exec_command(@hostname, @username, cmd, output, @options)
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
|
+
def set_options(options={})
|
38
|
+
# Local map has precedence.
|
39
|
+
@options.merge!(options)
|
40
|
+
end
|
37
41
|
end
|
38
42
|
end
|
data/scutil.gemspec
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
|
1
2
|
Gem::Specification.new do |s|
|
2
3
|
s.name = 'scutil'
|
3
|
-
s.version = '0.
|
4
|
-
s.date = '2011-10-
|
4
|
+
s.version = '0.3.0'
|
5
|
+
s.date = '2011-10-11'
|
5
6
|
s.summary = 'SSH Command UTILity'
|
6
7
|
s.description = <<-EOF
|
7
8
|
Scutil is a library for conveniently executing commands
|
@@ -11,8 +12,8 @@ EOF
|
|
11
12
|
s.email = 'marcantoniosr@gmail.com'
|
12
13
|
s.license = 'MIT'
|
13
14
|
s.homepage = 'http://marcantonio.github.com/scutil'
|
14
|
-
s.rdoc_options << '--title' << 'SSH Command UTILity' << '--main' << 'README'
|
15
|
-
s.extra_rdoc_files = ['README', 'THANKS', 'CHANGELOG']
|
15
|
+
s.rdoc_options << '--title' << 'SSH Command UTILity' << '--main' << 'README.rdoc'
|
16
|
+
s.extra_rdoc_files = ['README.rdoc', 'THANKS', 'CHANGELOG.md']
|
16
17
|
s.add_runtime_dependency 'net-ssh', '>= 2.1.0'
|
17
18
|
s.files = %w(
|
18
19
|
lib/scutil.rb
|
@@ -21,8 +22,8 @@ lib/scutil/error.rb
|
|
21
22
|
lib/scutil/exec.rb
|
22
23
|
lib/scutil/system_connection.rb
|
23
24
|
scutil.gemspec
|
24
|
-
README
|
25
|
-
CHANGELOG
|
25
|
+
README.rdoc
|
26
|
+
CHANGELOG.md
|
26
27
|
THANKS
|
27
28
|
test/test_scutil.rb
|
28
29
|
)
|
data/test/test_scutil.rb
CHANGED
@@ -127,8 +127,84 @@ class TestScutil < Test::Unit::TestCase
|
|
127
127
|
assert_instance_of(Net::SSH::Connection::Session, conn.pty_connection)
|
128
128
|
assert_nil(conn.connection)
|
129
129
|
end
|
130
|
+
|
131
|
+
def test_alter_options
|
132
|
+
divert_stdout
|
133
|
+
@exec.exec_command(TRUE_COMMAND)
|
134
|
+
revert_stdout
|
135
|
+
assert_not_match(/\[#{TestScutil.hostname}\]/, @output.string)
|
136
|
+
|
137
|
+
@exec.set_options({ :scutil_verbose => true })
|
138
|
+
|
139
|
+
divert_stdout
|
140
|
+
@exec.exec_command(TRUE_COMMAND)
|
141
|
+
revert_stdout
|
142
|
+
assert_match(/\[#{TestScutil.hostname}\]/, @output.string)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
class TestScutilAlt < Test::Unit::TestCase
|
147
|
+
TRUE_COMMAND = '/bin/true'
|
148
|
+
FALSE_COMMAND = '/bin/false'
|
149
|
+
FAKE_COMMAND = '/bin/no_such_command'
|
150
|
+
|
151
|
+
@hostname = nil
|
152
|
+
@port = nil
|
153
|
+
@user = nil
|
154
|
+
|
155
|
+
class << self
|
156
|
+
attr_accessor :hostname,:port,:user
|
157
|
+
end
|
158
|
+
|
159
|
+
def divert_stdout
|
160
|
+
@tmp_output = $stdout
|
161
|
+
$stdout = StringIO.new
|
162
|
+
end
|
163
|
+
|
164
|
+
def revert_stdout
|
165
|
+
@output = $stdout
|
166
|
+
$stdout = @tmp_output
|
167
|
+
end
|
168
|
+
|
169
|
+
def setup
|
170
|
+
@output = nil
|
171
|
+
@tmp_output = nil
|
172
|
+
end
|
173
|
+
|
174
|
+
def test_exec_doesnt_raise_an_exception
|
175
|
+
assert_nothing_raised do
|
176
|
+
Scutil.exec_command(TestScutil.hostname, TestScutil.user, TRUE_COMMAND, nil, { :port => TestScutil.port })
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
def test_run_successful_command
|
181
|
+
retval = Scutil.exec_command(TestScutil.hostname, TestScutil.user, TRUE_COMMAND, nil, { :port => TestScutil.port })
|
182
|
+
assert_equal 0, retval
|
183
|
+
end
|
184
|
+
|
185
|
+
def test_run_failed_command
|
186
|
+
retval = Scutil.exec_command(TestScutil.hostname, TestScutil.user, FALSE_COMMAND, nil, { :port => TestScutil.port })
|
187
|
+
assert_not_equal 0, retval
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_added_to_cache
|
191
|
+
Scutil.exec_command(TestScutil.hostname, TestScutil.user, TRUE_COMMAND, nil, { :port => TestScutil.port })
|
192
|
+
assert(Scutil.connection_cache.exists?(TestScutil.hostname))
|
193
|
+
end
|
194
|
+
|
195
|
+
def test_exec_command_output
|
196
|
+
divert_stdout
|
197
|
+
Scutil.exec_command(TestScutil.hostname, TestScutil.user, 'echo "alpha"', nil, { :port => TestScutil.port })
|
198
|
+
revert_stdout
|
199
|
+
assert_equal "alpha", @output.string.chomp
|
200
|
+
end
|
201
|
+
|
202
|
+
def teardown
|
203
|
+
Scutil.connection_cache.remove_all
|
204
|
+
end
|
130
205
|
end
|
131
206
|
|
207
|
+
# XXX: This breaks --name, et al.
|
132
208
|
if ARGV[0].nil?
|
133
209
|
puts "Usage: #{$0} host[:port]"
|
134
210
|
exit(1)
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: scutil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.3.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Marc Soda
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-10-
|
13
|
+
date: 2011-10-11 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: net-ssh
|
@@ -30,9 +30,9 @@ executables: []
|
|
30
30
|
extensions: []
|
31
31
|
|
32
32
|
extra_rdoc_files:
|
33
|
-
- README
|
33
|
+
- README.rdoc
|
34
34
|
- THANKS
|
35
|
-
- CHANGELOG
|
35
|
+
- CHANGELOG.md
|
36
36
|
files:
|
37
37
|
- lib/scutil.rb
|
38
38
|
- lib/scutil/connection_cache.rb
|
@@ -40,8 +40,8 @@ files:
|
|
40
40
|
- lib/scutil/exec.rb
|
41
41
|
- lib/scutil/system_connection.rb
|
42
42
|
- scutil.gemspec
|
43
|
-
- README
|
44
|
-
- CHANGELOG
|
43
|
+
- README.rdoc
|
44
|
+
- CHANGELOG.md
|
45
45
|
- THANKS
|
46
46
|
- test/test_scutil.rb
|
47
47
|
homepage: http://marcantonio.github.com/scutil
|
@@ -52,7 +52,7 @@ rdoc_options:
|
|
52
52
|
- --title
|
53
53
|
- SSH Command UTILity
|
54
54
|
- --main
|
55
|
-
- README
|
55
|
+
- README.rdoc
|
56
56
|
require_paths:
|
57
57
|
- lib
|
58
58
|
required_ruby_version: !ruby/object:Gem::Requirement
|