diff --git a/index.js b/index.js index 5968fcf47b69094993b0f861c03f5560e4a6a9b7..0fe16d4f40612c0abfa57898909ce0083f56944c 100644 --- a/index.js +++ b/index.js @@ -56,19 +56,23 @@ function getOptionsWithDefaults (options, manifest) { async function spawnWithLogging (options, command, args, allowFail) { return new Promise((resolve, reject) => { logger(`$ ${command} ${args.join(' ')}`) + const output = [] const child = childProcess.spawn(command, args, { cwd: options['working-dir'] }) child.stdout.on('data', (data) => { + output.push(data) logger(`1> ${data}`) }) child.stderr.on('data', (data) => { + output.push(data) logger(`2> ${data}`) }) child.on('error', (error) => { + logger(`error - ${error.message} ${error.stack}`) reject(error) }) child.on('close', (code) => { if (!allowFail && code !== 0) { - reject(new Error(`${command} failed with status code ${code}`)) + reject(new Error(`${command} ${args.join(' ')} failed with status code ${code} ${output.join(' ')}`)) } resolve(code === 0) })