29 lines
		
	
	
		
			512 B
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			512 B
		
	
	
	
		
			JavaScript
		
	
	
| 'use strict';
 | |
| 
 | |
| const isWindows = require('is-windows');
 | |
| const getRunCmdEnv = require('./utils/getRunCmdEnv');
 | |
| 
 | |
| function runCmd(cmd, _args, fn) {
 | |
|   const args = _args || [];
 | |
| 
 | |
|   if (isWindows()) {
 | |
|     args.unshift(cmd);
 | |
|     args.unshift('/c');
 | |
|     cmd = process.env.ComSpec;
 | |
|   }
 | |
| 
 | |
|   const runner = require('child_process').spawn(cmd, args, {
 | |
|     // keep color
 | |
|     stdio: 'inherit',
 | |
|     env: getRunCmdEnv(),
 | |
|   });
 | |
| 
 | |
|   runner.on('close', code => {
 | |
|     if (fn) {
 | |
|       fn(code);
 | |
|     }
 | |
|   });
 | |
| }
 | |
| 
 | |
| module.exports = runCmd;
 |