function spawnChildProcess()

in packages/ts2kt-automator/lib.js [6:36]


function spawnChildProcess(command, args) {
  console.log('Running command: ', command, args.join(' '));
  return new Promise((resolve, reject) => {
    const proc = spawn(command, args, {
      stdio: [process.stdin, process.stdout, 'pipe'],
      shell: true,
    });

    const errors = [];

    proc.stderr.on('data', (err) => {
      const errorMessage = err.toString();
      errors.push(errorMessage);
    });

    proc.on('error', (err) => {
      console.error(`\`${command} ${args.join(' ')}\` failed`, err);
      reject(err.toString());
    });

    proc.on('close', (code) => {
      if (code !== 0) {
        const errorMessage =
          errors.join('') ||
          `Error. \`${command} ${args.join(' ')}\` exited with code=${code}`;
        return reject(errorMessage);
      }
      resolve();
    });
  });
}