gofer 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/HISTORY.md +6 -2
- data/README.md +5 -0
- data/lib/gofer/host.rb +27 -0
- data/lib/gofer/version.rb +1 -1
- data/spec/gofer/integration_spec.rb +37 -19
- metadata +2 -2
data/HISTORY.md
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
# Revision History
|
|
2
2
|
|
|
3
|
+
### v0.2.2 10/05/20011
|
|
4
|
+
|
|
5
|
+
* Add `run_multiple` method to `Gofer::Host`
|
|
6
|
+
|
|
3
7
|
### v0.2.1 08/05/2011
|
|
4
8
|
|
|
5
9
|
* Add `quiet=` to Host instance to allow setting quiet to be the default.
|
|
6
10
|
|
|
7
11
|
### v0.2.0 03/05/2011
|
|
8
12
|
|
|
9
|
-
* Flip ordering of username/hostname on instantiation to match that of Net::SSH
|
|
13
|
+
* Flip ordering of username/hostname on instantiation to match that of `Net::SSH`
|
|
10
14
|
|
|
11
15
|
### v0.1.2 03/05/2011
|
|
12
16
|
|
|
13
|
-
* Pass through Gofer::Host instantiation options straight through to Net::SSH
|
|
17
|
+
* Pass through `Gofer::Host` instantiation options straight through to `Net::SSH`.
|
|
14
18
|
|
|
15
19
|
### v0.1.1 23/04/2011
|
|
16
20
|
|
data/README.md
CHANGED
|
@@ -54,6 +54,11 @@
|
|
|
54
54
|
h.run "echo noisier 1>&2", :quiet_stderr => true # don't print stderr
|
|
55
55
|
h.quiet = true # never print stdout
|
|
56
56
|
|
|
57
|
+
### Run multiple commands
|
|
58
|
+
|
|
59
|
+
response = h.run_multiple(['echo hello', 'echo goodbye'], :quiet => true)
|
|
60
|
+
puts response.stdout # will print "hello\ngoodbye\n"
|
|
61
|
+
|
|
57
62
|
## Planned Features
|
|
58
63
|
|
|
59
64
|
h.write("a string buffer", 'a_remote_file')
|
data/lib/gofer/host.rb
CHANGED
|
@@ -52,6 +52,33 @@ module Gofer
|
|
|
52
52
|
end
|
|
53
53
|
response
|
|
54
54
|
end
|
|
55
|
+
|
|
56
|
+
# Run +commands+ one by one in order.
|
|
57
|
+
#
|
|
58
|
+
# Raise an error if a command in +commands+ exits with a non-zero status.
|
|
59
|
+
#
|
|
60
|
+
# Print +stdout+ and +stderr+ as they're received.
|
|
61
|
+
#
|
|
62
|
+
# Return a Gofer::Response object.
|
|
63
|
+
#
|
|
64
|
+
# Options:
|
|
65
|
+
#
|
|
66
|
+
# +quiet+:: Don't print +stdout+, can also be set with +quiet=+ on the instance
|
|
67
|
+
# +quiet_stderr+:: Don't print +stderr+
|
|
68
|
+
#
|
|
69
|
+
# The behaviour of passing +capture_exit_status+ here is undefined.
|
|
70
|
+
def run_multiple commands, opts={}
|
|
71
|
+
return if commands.empty?
|
|
72
|
+
|
|
73
|
+
responses = commands.map do |command|
|
|
74
|
+
run command, opts
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
first_response = responses.shift
|
|
78
|
+
responses.reduce(first_response) do |cursor, response|
|
|
79
|
+
Response.new(cursor.stdout + response.stdout, cursor.stderr + response.stderr, cursor.output + response.output, 0)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
55
82
|
|
|
56
83
|
# Return +true+ if +path+ exits.
|
|
57
84
|
def exists? path
|
data/lib/gofer/version.rb
CHANGED
|
@@ -59,29 +59,34 @@ describe Gofer do
|
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
|
|
62
|
+
shared_examples_for "an output capturer" do
|
|
63
|
+
it "and capture stdout in @response.stdout" do
|
|
64
|
+
@response.stdout.should == "stdout\n"
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it "and capture stderr in @response.stderr" do
|
|
68
|
+
@response.stderr.should == "stderr\n"
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it "and combine captured stdout / stderr in @response.output" do
|
|
72
|
+
@response.output.should == "stdout\nstderr\n"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
it "and @response by itself should be the captured stdout" do
|
|
76
|
+
@response.should == "stdout\n"
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
62
80
|
describe :run do
|
|
63
|
-
|
|
81
|
+
|
|
82
|
+
describe "with a stdout and stderr responses" do
|
|
64
83
|
before :all do
|
|
65
84
|
@response = @host.run "echo stdout; echo stderr 1>&2", :quiet_stderr => true
|
|
66
85
|
end
|
|
67
|
-
|
|
68
|
-
it "should capture stdout in @response.stdout" do
|
|
69
|
-
@response.stdout.should == "stdout\n"
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
it "should capture stderr in @response.stderr" do
|
|
73
|
-
@response.stderr.should == "stderr\n"
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
it "should combine captured stdout / stderr in @response.output" do
|
|
77
|
-
@response.output.should == "stdout\nstderr\n"
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
it "@response by itself should be the captured stdout" do
|
|
81
|
-
@response.should == "stdout\n"
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
86
|
|
|
87
|
+
it_should_behave_like "an output capturer"
|
|
88
|
+
end
|
|
89
|
+
|
|
85
90
|
it "should error if a command returns a non-zero response" do
|
|
86
91
|
lambda {@host.run "false"}.should raise_error /failed with exit status/
|
|
87
92
|
end
|
|
@@ -91,7 +96,20 @@ describe Gofer do
|
|
|
91
96
|
response.exit_status.should == 1
|
|
92
97
|
end
|
|
93
98
|
end
|
|
94
|
-
|
|
99
|
+
|
|
100
|
+
describe :run_multiple do
|
|
101
|
+
describe "with stdout and stderr responses" do
|
|
102
|
+
before :all do
|
|
103
|
+
@response = @host.run_multiple ["echo stdout", "echo stderr 1>&2"], :quiet_stderr => true
|
|
104
|
+
end
|
|
105
|
+
it_should_behave_like "an output capturer"
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
it "should error if a command returns a non-zero response" do
|
|
109
|
+
lambda {@host.run_multiple ["echo", "false"]}.should raise_error /failed with exit status/
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
95
113
|
describe :exists? do
|
|
96
114
|
it "should return true if a path or file exists" do
|
|
97
115
|
raw_ssh "touch #{in_tmpdir 'exists'}"
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: gofer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 0.2.
|
|
5
|
+
version: 0.2.2
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Michael Pearson
|
|
@@ -10,7 +10,7 @@ autorequire:
|
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
12
|
|
|
13
|
-
date: 2011-05-
|
|
13
|
+
date: 2011-05-10 00:00:00 +10:00
|
|
14
14
|
default_executable:
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|