@@ -80,6 +80,15 @@ const runconvert = async (cmdLine, outputName, { inputBuffer, start, end }) => {
8080 return new Promise ( ( resolve , reject ) => {
8181 const childProcess = spawn ( '/bin/sh' , [ '-c' , cmdLineFull ] )
8282
83+ const childProcessErr = [ ]
84+ const formatChildProcessErr = ( header ) => {
85+ const lines = [
86+ header ,
87+ ...childProcessErr
88+ ] . filter ( l => l ) . map ( l => l . trim ( ) ) . filter ( l => l )
89+ return lines . join ( '\n' )
90+ }
91+
8392 childProcess . once ( 'exit' , ( code , signal ) => {
8493 debug ( `conversion process exited with code ${ code } , signal ${ signal } ` )
8594 if ( code === 0 ) {
@@ -94,7 +103,7 @@ const runconvert = async (cmdLine, outputName, { inputBuffer, start, end }) => {
94103 reject ( new Error ( `conversion process output file ${ output } not readable: ${ err . message } ` ) )
95104 }
96105 } else {
97- reject ( new Error ( `conversion process exited with code ${ code } , signal ${ signal } ` ) )
106+ reject ( new Error ( formatChildProcessErr ( `conversion process exited with failure code ${ code } ${ signal ? ` , signal ${ signal } ` : '' } ` ) ) )
98107 }
99108 if ( input ) {
100109 try {
@@ -106,19 +115,23 @@ const runconvert = async (cmdLine, outputName, { inputBuffer, start, end }) => {
106115 } )
107116 childProcess . once ( 'error' , ( err ) => {
108117 debug ( `conversion process failed: ${ err . message } ` )
109- reject ( new Error ( `conversion process failed: ${ err . message } ` ) )
118+ reject ( new Error ( formatChildProcessErr ( `conversion process failed: ${ err . message } ` ) ) )
110119 } )
111120 childProcess . stdout . on ( 'error' , ( err ) => {
112121 debug ( 'stdout err ' + err )
122+ childProcessErr . push ( `${ err . message } ` )
113123 } )
114124 childProcess . stderr . on ( 'error' , ( err ) => {
115125 debug ( 'stderr err ' + err )
126+ childProcessErr . push ( `${ err . message } ` )
116127 } )
117128 childProcess . stdin . on ( 'error' , ( err ) => {
118129 debug ( 'stdin err ' + err )
130+ childProcessErr . push ( `${ err . message } ` )
119131 } )
120132 childProcess . stderr . on ( 'data' , ( data ) => {
121133 debug ( 'stderr ' + data )
134+ childProcessErr . push ( `${ data } ` )
122135 } )
123136
124137 if ( cmdLine . indexOf ( '{{{input}}}' ) < 0 ) {
0 commit comments