mirror of https://github.com/actions/toolkit
parent
439eaced07
commit
c5035362ab
|
@ -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)
|
||||
}
|
||||
}
|
||||
})
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue