@@ -21,39 +21,53 @@ def system(*args, chdir: nil, env: nil)
21
21
22
22
args = args . to_a . map ( &:to_s )
23
23
# TODO: Remove __skip__ once we have open3 RBS definitions.
24
- __skip__ = if @verbose || !$stdout. tty?
25
- kwargs [ :exception ] = true
26
- env ? Kernel . system ( env , *args , **kwargs ) : Kernel . system ( *args , **kwargs )
27
- else
28
- printer = StatusPrinter . new
29
- block = proc do |stdin , stdout , stderr , wait_thr |
30
- mux = Mutex . new
31
- out = String . new
32
- err = String . new
33
- readers = [ [ stdout , :stdout , out ] , [ stderr , :stderr , err ] ] . map do |io , name , str |
34
- reader = Thread . new {
35
- while ( line = io . gets )
36
- mux . synchronize {
37
- printer . send ( name , line )
38
- str << line
39
- }
40
- end
41
- }
42
- reader . report_on_exception = false
43
- reader
24
+ __skip__ =
25
+ if @verbose || !$stdout. tty?
26
+ kwargs [ :exception ] = true
27
+ if env
28
+ Kernel . system ( env , *args , **kwargs )
29
+ else
30
+ Kernel . system ( *args , **kwargs )
31
+ end
32
+ else
33
+ printer = StatusPrinter . new
34
+ block =
35
+ proc do |stdin , stdout , stderr , wait_thr |
36
+ mux = Mutex . new
37
+ out = String . new
38
+ err = String . new
39
+ readers =
40
+ [
41
+ [ stdout , :stdout , out ] ,
42
+ [ stderr , :stderr , err ]
43
+ ] . map do |io , name , str |
44
+ reader =
45
+ Thread . new do
46
+ while ( line = io . gets )
47
+ mux . synchronize do
48
+ printer . send ( name , line )
49
+ str << line
50
+ end
51
+ end
52
+ end
53
+ reader . report_on_exception = false
54
+ reader
55
+ end
56
+
57
+ readers . each ( &:join )
58
+
59
+ [ out , err , wait_thr . value ]
60
+ end
61
+ begin
62
+ if env
63
+ Open3 . popen3 ( env , *args , **kwargs , &block )
64
+ else
65
+ Open3 . popen3 ( *args , **kwargs , &block )
66
+ end
67
+ ensure
68
+ printer . done
44
69
end
45
-
46
- readers . each ( &:join )
47
-
48
- [ out , err , wait_thr . value ]
49
- end
50
- begin
51
- env ? Open3 . popen3 ( env , *args , **kwargs , &block ) : Open3 . popen3 ( *args , **kwargs , &block )
52
- ensure
53
- printer . done
54
70
end
55
- end
56
-
57
71
rescue => e
58
72
$stdout. flush
59
73
$stderr. puts "Try running with `rake --verbose` for more complete output."
@@ -126,12 +140,14 @@ def initialize
126
140
127
141
def stdout ( message )
128
142
require "io/console"
129
- @mutex . synchronize {
143
+ @mutex . synchronize do
130
144
$stdout. print "\e [K"
131
145
first_line = message . lines ( chomp : true ) . first || ""
132
146
133
147
# Make sure we don't line-wrap the output
134
- size = __skip__ = IO . respond_to? ( :console_size ) ? IO . console_size : IO . console . winsize
148
+ size =
149
+ __skip__ =
150
+ IO . respond_to? ( :console_size ) ? IO . console_size : IO . console . winsize
135
151
terminal_width = size [ 1 ] . to_i . nonzero? || 80
136
152
width_limit = terminal_width / 2 - 3
137
153
@@ -144,19 +160,15 @@ def stdout(message)
144
160
$stdout. print "\e [1A\n "
145
161
@counter += 1
146
162
@counter = 0 if @counter >= @indicators . length
147
- }
163
+ end
148
164
end
149
165
150
166
def stderr ( message )
151
- @mutex . synchronize {
152
- $stdout. print message
153
- }
167
+ @mutex . synchronize { $stdout. print message }
154
168
end
155
169
156
170
def done
157
- @mutex . synchronize {
158
- $stdout. print "\e [K"
159
- }
171
+ @mutex . synchronize { $stdout. print "\e [K" }
160
172
end
161
173
end
162
174
end
0 commit comments