@@ -36,63 +36,63 @@ def success?
3636 end
3737
3838 def self . run ( *args , out : $stdout, err : $stderr, **options )
39- out_r , out_w = IO . pipe
40- err_r , err_w = IO . pipe
41- child_io = [ out_w , err_w ]
42- parent_io = [ out_r , err_r ]
39+ stdout_reader , stdout_writer = IO . pipe
40+ stderr_reader , stderr_writer = IO . pipe
41+ childs_io = [ stdout_writer , stderr_writer ]
42+ parent_io = [ stdout_reader , stderr_reader ]
4343
44- output_strio = StringIO . new
45- error_strio = StringIO . new
46- output_writter = IO ::MultiWriter . new ( out , output_strio )
47- error_writter = IO ::MultiWriter . new ( err , error_strio )
44+ out_strio = StringIO . new
45+ err_strio = StringIO . new
46+ out_multiwriter = IO ::MultiWriter . new ( out , out_strio )
47+ err_multiwriter = IO ::MultiWriter . new ( err , err_strio )
4848
4949 if block_given?
50- in_r , in_w = IO . pipe
51- in_w . sync = true
52- child_io << in_r
53- parent_io << in_w
50+ stdin_reader , stdin_writer = IO . pipe
51+ stdin_writer . sync = true
52+ childs_io << stdin_reader
53+ parent_io << stdin_writer
5454
55- pid = Process . spawn ( *args , **options , in : in_r , out : out_w , err : err_w )
56- child_io . each ( &:close )
55+ pid = Process . spawn ( *args , **options , in : stdin_reader , out : stdout_writer , err : stderr_writer )
56+ childs_io . each ( &:close )
5757
58- pipe = IO ::Stapled . new ( out_r , in_w )
58+ pipe = IO ::Stapled . new ( stdout_reader , stdin_writer )
5959 begin
6060 yield pipe
6161 ensure
62- in_w . close unless in_w . closed?
62+ stdin_writer . close unless stdin_writer . closed?
6363 pipe . close
6464 end
6565 else
66- pid = Process . spawn ( *args , **options , out : out_w , err : err_w )
67- child_io . each ( &:close )
66+ pid = Process . spawn ( *args , **options , out : stdout_writer , err : stderr_writer )
67+ childs_io . each ( &:close )
6868 end
6969
7070 t1 = Thread . new do
71- out_r . each_line do |line |
72- output_writter . write ( line )
71+ stdout_reader . each_line do |line |
72+ out_multiwriter . write ( line )
7373 end
7474 end
7575
7676 t2 = Thread . new do
77- err_r . each_line do |line |
78- error_writter . write ( line )
77+ stderr_reader . each_line do |line |
78+ err_multiwriter . write ( line )
7979 end
8080 end
8181
8282 begin
8383 t1 . join
8484 t2 . join
8585 ensure
86- output_writter . close
87- error_writter . close
86+ out_multiwriter . close
87+ err_multiwriter . close
8888 parent_io . each { |io | io . close unless io . closed? }
8989 end
9090
9191 pid , status = Process . wait2 ( pid )
9292 if status . success?
93- output_strio . string
93+ out_strio . string
9494 else
95- Err . new ( output_strio . string , error_strio . string , status )
95+ Err . new ( out_strio . string , err_strio . string , status )
9696 end
9797 end
9898
0 commit comments