child.on('close', (code) => { if (code !== 0) { reject(`Ended with code ${code}`); } else { resolve(); } });
const executeCommand = (command, args) => { const child = spawn(command, args, { stdio: 'inherit' }); return new Promise((resolve, reject) => { child.on('close', code => { if (code !== 0) { reject(new Error(`${command} ${args.join(' ')} failed with exit code ${code}`)); return; } resolve(); }); }); }
runner.on('exit', function (code) { server.close() process.exit(code) })
function runYarn(cwd, args, resolveOutput) { const isWin = os.platform() === "win32"; return new Promise((resolve, reject) => { debug("yarn", yarnPath, args, cwd); var child = fork(yarnPath, args || [], { cwd: cwd, stdio: !resolveOutput ? "inherit" : "pipe" }); if (isWin) { // a windows bug. need to press enter sometimes try { // process.stdin.write("\n"); // process.stdin.end(); } catch (e) {} } var output = ""; if (resolveOutput) { child.stdout.on("data", data => { output += data; }); } child.on("exit", code => { debug("yarn completed"); resolve(output); }); }); }
stdio: 'inherit' }) .on('exit', process.exit) })
function getBuildInfo(pageData, onClose) { return new Promise(async (resolve, reject) => { const pageId = pageData.id; if (!bundlerProgram) return resolve({ info: false }); const parameters = [ pageData.path, pageData.entryFile, pageData.type, ".zero/zero-builds/" + pageId ]; const options = { stdio: [0, 1, 2, "ipc"] }; const child = fork(bundlerProgram, parameters, options); child.on("message", message => { return resolve({ child, info: message }); }); child.on("close", () => { debug("bundler process closed", pageId); if (onClose) onClose(); }); }); }
}); child.stdout.on('data', (data) => { terminal.write('\r\n' + data.toString().replace(/(\r\n|\n|\r)/gm," ") + ' \r\n'); }); child.on('close', (code) => { terminal.write('\r\n' + cwd + '\r\n'); terminal.write('$'); }); child.stderr.on('data', (data) => { terminal.write(data.toString() + '\r\n'); reject(); child.stdout.on('data', (data) => { let output = data.toString().replace(/(\r\n|\n|\r)/gm,""); terminal.write(output + '\r\n'); }); child.on('close', () => { terminal.write(cwd + '\r\n'); terminal.write('$');
runner.on('error', function (err) { server.close() throw err })
child.on('error', (error) => { reject(error); });
function executeCommand(command, args, options = {}) { const child = spawn(command, args, { stdio: 'inherit', ...options }); return new Promise((resolve, reject) => { child.on('close', (code) => { if (code !== 0) { reject(new Error(`${command} ${args.join(' ')} failed with exit code ${code}. Please check your console.`)); return; } resolve(); }); }); }
function getBuildInfo(pageData, onClose) { return new Promise(async (resolve, reject) => { const pageId = pageData.id; if (!bundlerProgram) return resolve({ info: false }); const parameters = [ pageData.path, pageData.entryFile, pageData.type, ".zero/zero-builds/" + pageId ]; const options = { stdio: [0, 1, 2, "ipc"] }; const child = fork(bundlerProgram, parameters, options); child.on("message", message => { return resolve({ child, info: message }); }); child.on("close", () => { debug("bundler process closed", pageId); if (onClose) onClose(); }); }); }
function runYarn(cwd, args, resolveOutput) { const isWin = os.platform() === "win32"; return new Promise((resolve, reject) => { debug("yarn", yarnPath, args, cwd); var child = fork(yarnPath, args || [], { cwd: cwd, stdio: !resolveOutput ? "inherit" : "pipe" }); if (isWin) { // a windows bug. need to press enter sometimes try { // process.stdin.write("\n"); // process.stdin.end(); } catch (e) {} } var output = ""; if (resolveOutput) { child.stdout.on("data", data => { output += data; }); } child.on("exit", code => { debug("yarn completed"); resolve(output); }); }); }