// This file exports a function that has the same interface as // `spawnSync`, but it throws if there's an error while executing // the supplied command or if the exit code is not 0. This is similar to what // `execSync` does, but we want to use `spawnSync` because it provides automatic // escaping for the supplied arguments. const childProcess = require('child_process'); module.exports = function() { const result = childProcess.spawnSync.apply(childProcess, arguments); if (result.error) { throw result.error; } else if (result.status !== 0) { if (result.stdout) console.error(result.stdout.toString()); if (result.stderr) console.error(result.stderr.toString()); throw new Error( `Command ${result.args.join(' ')} exited with code "${result.status}"` ); } else { return result; } };