40 lines
		
	
	
		
			947 B
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			947 B
		
	
	
	
		
			JavaScript
		
	
	
if (require.main !== module) {
 | 
						|
  throw new Error('This file should not be required');
 | 
						|
}
 | 
						|
 | 
						|
var childProcess = require('child_process');
 | 
						|
var fs = require('fs');
 | 
						|
 | 
						|
var paramFilePath = process.argv[2];
 | 
						|
 | 
						|
var serializedParams = fs.readFileSync(paramFilePath, 'utf8');
 | 
						|
var params = JSON.parse(serializedParams);
 | 
						|
 | 
						|
var cmd = params.command;
 | 
						|
var execOptions = params.execOptions;
 | 
						|
var pipe = params.pipe;
 | 
						|
var stdoutFile = params.stdoutFile;
 | 
						|
var stderrFile = params.stderrFile;
 | 
						|
 | 
						|
var c = childProcess.exec(cmd, execOptions, function (err) {
 | 
						|
  if (!err) {
 | 
						|
    process.exitCode = 0;
 | 
						|
  } else if (err.code === undefined) {
 | 
						|
    process.exitCode = 1;
 | 
						|
  } else {
 | 
						|
    process.exitCode = err.code;
 | 
						|
  }
 | 
						|
});
 | 
						|
 | 
						|
var stdoutStream = fs.createWriteStream(stdoutFile);
 | 
						|
var stderrStream = fs.createWriteStream(stderrFile);
 | 
						|
 | 
						|
c.stdout.pipe(stdoutStream);
 | 
						|
c.stderr.pipe(stderrStream);
 | 
						|
c.stdout.pipe(process.stdout);
 | 
						|
c.stderr.pipe(process.stderr);
 | 
						|
 | 
						|
if (pipe) {
 | 
						|
  c.stdin.end(pipe);
 | 
						|
}
 |