console-mux 2.0.2 → 2.0.6
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/console/mux.rb +2 -2
- data/lib/console/mux/command.rb +5 -1
- data/lib/console/mux/console.rb +20 -6
- data/lib/console/mux/run_with.rb +1 -1
- data/lib/console/mux/shell.rb +2 -1
- metadata +14 -14
data/lib/console/mux.rb
CHANGED
data/lib/console/mux/command.rb
CHANGED
@@ -74,6 +74,10 @@ module Console
|
|
74
74
|
# `[new_command, new_opts]`.
|
75
75
|
def initialize(opts)
|
76
76
|
@opts = opts.dup
|
77
|
+
# one-level-deep dup, required to properly dup :env, possibly others
|
78
|
+
opts.each do |k,v|
|
79
|
+
@opts[k] = v.dup if v.kind_of?(Hash)
|
80
|
+
end
|
77
81
|
|
78
82
|
self.env ||= {}
|
79
83
|
self.run_with ||= []
|
@@ -131,4 +135,4 @@ module Console
|
|
131
135
|
end
|
132
136
|
end
|
133
137
|
end
|
134
|
-
end
|
138
|
+
end
|
data/lib/console/mux/console.rb
CHANGED
@@ -40,9 +40,10 @@ module Console
|
|
40
40
|
|
41
41
|
BUFFER_LINES = 10000
|
42
42
|
|
43
|
-
attr_reader :commands, :default_options, :formatter, :buffer, :logger
|
43
|
+
attr_reader :commands, :options, :default_options, :formatter, :buffer, :logger
|
44
44
|
|
45
45
|
def initialize(options={})
|
46
|
+
@options = options
|
46
47
|
@commands = CommandSet.new
|
47
48
|
@default_options = Hash.new
|
48
49
|
@base_dir = '.'
|
@@ -58,7 +59,9 @@ module Console
|
|
58
59
|
BUFFER_LINES,
|
59
60
|
:formatter => formatter)
|
60
61
|
logger.add @buffer
|
62
|
+
end
|
61
63
|
|
64
|
+
def startup
|
62
65
|
EventMachine.run do
|
63
66
|
logger.info { 'Initializing' }
|
64
67
|
|
@@ -149,16 +152,20 @@ module Console
|
|
149
152
|
# {:command => 'ls'})
|
150
153
|
#
|
151
154
|
# @param [Hash] *opts one or more option hashes passed to +Command.new+.
|
152
|
-
def run(*
|
153
|
-
names =
|
155
|
+
def run(*opts_hashes)
|
156
|
+
names = add(*opts_hashes).compact
|
157
|
+
seq_names(names)
|
158
|
+
end
|
159
|
+
|
160
|
+
# Like #run, but does not start any processes.
|
161
|
+
def add(*opts_hashes)
|
162
|
+
opts_hashes.map do |opts|
|
154
163
|
if opts.kind_of? Array
|
155
164
|
opts.map { |o| make_command_and_add(o) }
|
156
165
|
else
|
157
166
|
make_command_and_add(opts)
|
158
167
|
end
|
159
168
|
end
|
160
|
-
|
161
|
-
seq_names(names.compact)
|
162
169
|
end
|
163
170
|
|
164
171
|
def make_command(opts)
|
@@ -188,6 +195,13 @@ module Console
|
|
188
195
|
end
|
189
196
|
private :make_command_and_add
|
190
197
|
|
198
|
+
# Run a sequence of names where each name is the name of a
|
199
|
+
# process that may be started. Each process identified by
|
200
|
+
# +names+ will be started, and only after it exits will the
|
201
|
+
# remaining processes be started.
|
202
|
+
#
|
203
|
+
# Each element of +names+ may be a single name or an array of
|
204
|
+
# names, in which case all are started in parallel.
|
191
205
|
def seq_names(names)
|
192
206
|
return unless names.size > 0
|
193
207
|
|
@@ -285,4 +299,4 @@ module Console
|
|
285
299
|
end
|
286
300
|
end
|
287
301
|
end
|
288
|
-
end
|
302
|
+
end
|
data/lib/console/mux/run_with.rb
CHANGED
data/lib/console/mux/shell.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: console-mux
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|
@@ -99,21 +99,21 @@ executables:
|
|
99
99
|
extensions: []
|
100
100
|
extra_rdoc_files: []
|
101
101
|
files:
|
102
|
-
- lib/console/mux/events.rb
|
103
|
-
- lib/console/mux/console.rb
|
104
|
-
- lib/console/mux/pty_handler.rb
|
105
|
-
- lib/console/mux/command.rb
|
106
|
-
- lib/console/mux/rolling_array.rb
|
107
|
-
- lib/console/mux/env_with_merged.rb
|
108
102
|
- lib/console/mux/buffer_outputter.rb
|
109
|
-
- lib/console/mux/
|
103
|
+
- lib/console/mux/color_formatter.rb
|
104
|
+
- lib/console/mux/command.rb
|
110
105
|
- lib/console/mux/command_set.rb
|
111
|
-
- lib/console/mux/
|
112
|
-
- lib/console/mux/
|
106
|
+
- lib/console/mux/console.rb
|
107
|
+
- lib/console/mux/console_outputter.rb
|
108
|
+
- lib/console/mux/env_with_merged.rb
|
109
|
+
- lib/console/mux/events.rb
|
113
110
|
- lib/console/mux/object_compose.rb
|
114
111
|
- lib/console/mux/process.rb
|
115
|
-
- lib/console/mux/
|
112
|
+
- lib/console/mux/pty_handler.rb
|
113
|
+
- lib/console/mux/rolling_array.rb
|
114
|
+
- lib/console/mux/run_with.rb
|
116
115
|
- lib/console/mux/shell.rb
|
116
|
+
- lib/console/mux/util.rb
|
117
117
|
- lib/console/mux.rb
|
118
118
|
- lib/console/mux/bundle_exec.sh
|
119
119
|
- bin/console-mux
|
@@ -131,7 +131,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
131
|
version: '0'
|
132
132
|
segments:
|
133
133
|
- 0
|
134
|
-
hash:
|
134
|
+
hash: -1687027767931669956
|
135
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
136
|
none: false
|
137
137
|
requirements:
|
@@ -140,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
version: '0'
|
141
141
|
segments:
|
142
142
|
- 0
|
143
|
-
hash:
|
143
|
+
hash: -1687027767931669956
|
144
144
|
requirements: []
|
145
145
|
rubyforge_project:
|
146
146
|
rubygems_version: 1.8.23
|