diff --git a/packages/exec/src/toolrunner.ts b/packages/exec/src/toolrunner.ts index 940d9a1a40..87d0bbe10e 100644 --- a/packages/exec/src/toolrunner.ts +++ b/packages/exec/src/toolrunner.ts @@ -84,7 +84,7 @@ export class ToolRunner extends events.EventEmitter { data: Buffer, strBuffer: string, onLine: (line: string) => void - ): void { + ): string { try { let s = strBuffer + data.toString() let n = s.indexOf(os.EOL) @@ -98,10 +98,12 @@ export class ToolRunner extends events.EventEmitter { n = s.indexOf(os.EOL) } - strBuffer = s + return s } catch (err) { // streaming lines to console is best effort. Don't fail a build. this._debug(`error processing line. Failed with error ${err}`) + + return '' } } @@ -444,7 +446,7 @@ export class ToolRunner extends events.EventEmitter { this._getSpawnOptions(this.options, fileName) ) - const stdbuffer = '' + let stdbuffer = '' if (cp.stdout) { cp.stdout.on('data', (data: Buffer) => { if (this.options.listeners && this.options.listeners.stdout) { @@ -455,15 +457,19 @@ export class ToolRunner extends events.EventEmitter { optionsNonNull.outStream.write(data) } - this._processLineBuffer(data, stdbuffer, (line: string) => { - if (this.options.listeners && this.options.listeners.stdline) { - this.options.listeners.stdline(line) + stdbuffer = this._processLineBuffer( + data, + stdbuffer, + (line: string) => { + if (this.options.listeners && this.options.listeners.stdline) { + this.options.listeners.stdline(line) + } } - }) + ) }) } - const errbuffer = '' + let errbuffer = '' if (cp.stderr) { cp.stderr.on('data', (data: Buffer) => { state.processStderr = true @@ -482,11 +488,15 @@ export class ToolRunner extends events.EventEmitter { s.write(data) } - this._processLineBuffer(data, errbuffer, (line: string) => { - if (this.options.listeners && this.options.listeners.errline) { - this.options.listeners.errline(line) + errbuffer = this._processLineBuffer( + data, + errbuffer, + (line: string) => { + if (this.options.listeners && this.options.listeners.errline) { + this.options.listeners.errline(line) + } } - }) + ) }) }