command_utils 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/command_utils.rb +36 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3845dc2af885cf859dbc3f1afc1c2a0dd7ef31e4
|
4
|
+
data.tar.gz: 3359ba253daa038a08d4d3247ccd40c2a48d16ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c79aa92e07443ddcaf7b986347d5facfccceb2bc1a7d5f70cc7bf3cbdb79ee0234e8eee773697d303364dc605ad533f8d6313f84fde299ac9e3ef2936f075942
|
7
|
+
data.tar.gz: a18f88fc4fcfb06266e7102e958040472a413ca50e6baf68e6a67abd58c513e695e9a767376fb8627620a3d0433526c7404acd24c69bd8c842df18327ebd5ee5
|
data/lib/command_utils.rb
CHANGED
@@ -5,9 +5,22 @@ require_relative 'command_utils/line_buffer'
|
|
5
5
|
# All methods which execute given command, raise NonZeroStatus if its return is not 0.
|
6
6
|
class CommandUtils
|
7
7
|
|
8
|
+
# call-seq:
|
9
|
+
# new([env,] command...)
|
10
|
+
#
|
8
11
|
# Takes command in same format supported by Process#spawn.
|
9
|
-
def initialize *
|
10
|
-
|
12
|
+
def initialize *args
|
13
|
+
first = args.first
|
14
|
+
if first.kind_of? Hash
|
15
|
+
@env = args.shift
|
16
|
+
@command = args
|
17
|
+
elsif first.respond_to? :to_hash
|
18
|
+
@env = args.shift.to_hash
|
19
|
+
@command = args
|
20
|
+
else
|
21
|
+
@env = nil
|
22
|
+
@command = args
|
23
|
+
end
|
11
24
|
yield self if block_given?
|
12
25
|
end
|
13
26
|
|
@@ -36,9 +49,12 @@ class CommandUtils
|
|
36
49
|
end
|
37
50
|
end
|
38
51
|
|
52
|
+
# call-seq:
|
53
|
+
# each_output([env,] command...) { |stream, data| ... }
|
54
|
+
#
|
39
55
|
# Wrapper for CommandUtils#each_output
|
40
|
-
def self.each_output *
|
41
|
-
self.new(*
|
56
|
+
def self.each_output *args, &block # :yields: stream, data
|
57
|
+
self.new(*args).each_output(&block)
|
42
58
|
end
|
43
59
|
|
44
60
|
# Execute command, yielding to given block, each time there is a new line available.
|
@@ -67,9 +83,12 @@ class CommandUtils
|
|
67
83
|
stderr_lb.flush
|
68
84
|
end
|
69
85
|
|
86
|
+
# call-seq:
|
87
|
+
# each_line([env,] command...) { |stream, data| ... }
|
88
|
+
#
|
70
89
|
# Wrapper for CommandUtils#each_line
|
71
|
-
def self.each_line *
|
72
|
-
self.new(*
|
90
|
+
def self.each_line *args, &block # :yields: stream, data
|
91
|
+
self.new(*args).each_line(&block)
|
73
92
|
end
|
74
93
|
|
75
94
|
# Execute command, logging its output, line buffered, to given Logger object.
|
@@ -88,9 +107,12 @@ class CommandUtils
|
|
88
107
|
end
|
89
108
|
end
|
90
109
|
|
110
|
+
# call-seq:
|
111
|
+
# logger_exec([env,] command..., options)
|
112
|
+
#
|
91
113
|
# Wrapper for CommandUtils@logger_exec
|
92
|
-
def self.logger_exec
|
93
|
-
self.new(
|
114
|
+
def self.logger_exec *args, options
|
115
|
+
self.new(*args).logger_exec(options)
|
94
116
|
end
|
95
117
|
|
96
118
|
private
|
@@ -104,8 +126,13 @@ class CommandUtils
|
|
104
126
|
def spawn
|
105
127
|
@stdout_read, @stdout_write = IO.pipe
|
106
128
|
@stderr_read, @stderr_write = IO.pipe
|
129
|
+
spawn_args = if @env
|
130
|
+
[@env] + @command
|
131
|
+
else
|
132
|
+
@command
|
133
|
+
end
|
107
134
|
@pid = Process.spawn(
|
108
|
-
|
135
|
+
*spawn_args,
|
109
136
|
in: :close,
|
110
137
|
out: @stdout_write.fileno,
|
111
138
|
err: @stderr_write.fileno,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: command_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fabio Pugliese Ornellas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|