Skip to content

Commit c503536

Browse files
authored
Fix broken line buffers (#773)
* Fix broken line buffers * Code style
1 parent 439eace commit c503536

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

packages/exec/src/toolrunner.ts

+22-12
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export class ToolRunner extends events.EventEmitter {
8484
data: Buffer,
8585
strBuffer: string,
8686
onLine: (line: string) => void
87-
): void {
87+
): string {
8888
try {
8989
let s = strBuffer + data.toString()
9090
let n = s.indexOf(os.EOL)
@@ -98,10 +98,12 @@ export class ToolRunner extends events.EventEmitter {
9898
n = s.indexOf(os.EOL)
9999
}
100100

101-
strBuffer = s
101+
return s
102102
} catch (err) {
103103
// streaming lines to console is best effort. Don't fail a build.
104104
this._debug(`error processing line. Failed with error ${err}`)
105+
106+
return ''
105107
}
106108
}
107109

@@ -444,7 +446,7 @@ export class ToolRunner extends events.EventEmitter {
444446
this._getSpawnOptions(this.options, fileName)
445447
)
446448

447-
const stdbuffer = ''
449+
let stdbuffer = ''
448450
if (cp.stdout) {
449451
cp.stdout.on('data', (data: Buffer) => {
450452
if (this.options.listeners && this.options.listeners.stdout) {
@@ -455,15 +457,19 @@ export class ToolRunner extends events.EventEmitter {
455457
optionsNonNull.outStream.write(data)
456458
}
457459

458-
this._processLineBuffer(data, stdbuffer, (line: string) => {
459-
if (this.options.listeners && this.options.listeners.stdline) {
460-
this.options.listeners.stdline(line)
460+
stdbuffer = this._processLineBuffer(
461+
data,
462+
stdbuffer,
463+
(line: string) => {
464+
if (this.options.listeners && this.options.listeners.stdline) {
465+
this.options.listeners.stdline(line)
466+
}
461467
}
462-
})
468+
)
463469
})
464470
}
465471

466-
const errbuffer = ''
472+
let errbuffer = ''
467473
if (cp.stderr) {
468474
cp.stderr.on('data', (data: Buffer) => {
469475
state.processStderr = true
@@ -482,11 +488,15 @@ export class ToolRunner extends events.EventEmitter {
482488
s.write(data)
483489
}
484490

485-
this._processLineBuffer(data, errbuffer, (line: string) => {
486-
if (this.options.listeners && this.options.listeners.errline) {
487-
this.options.listeners.errline(line)
491+
errbuffer = this._processLineBuffer(
492+
data,
493+
errbuffer,
494+
(line: string) => {
495+
if (this.options.listeners && this.options.listeners.errline) {
496+
this.options.listeners.errline(line)
497+
}
488498
}
489-
})
499+
)
490500
})
491501
}
492502

0 commit comments

Comments
 (0)