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);
							 | 
						||
| 
								 | 
							
								}
							 |