11var fs = require ( 'fs' ) ;
2- var exec = require ( 'child_process' ) . exec ;
2+ var execFile = require ( 'child_process' ) . execFile ;
33var env = require ( './env' ) ;
44var scan = require ( './windows-scan' ) ;
55
6- function execCommand ( cmd ) {
6+ function execCommand ( cmd , params ) {
77 return new Promise ( function ( resolve , reject ) {
8- exec ( cmd , { env } , function ( err , stdout , stderr ) {
8+ execFile ( cmd , params , { env } , function ( err , stdout , stderr ) {
99 if ( err ) {
1010 // Add command output to error, so it's easier to handle
1111 err . stdout = stdout ;
@@ -36,17 +36,25 @@ function connectToWifi(config, ap, callback) {
3636 ) ;
3737 } )
3838 . then ( function ( ) {
39- return execCommand (
40- 'netsh wlan add profile filename="nodeWifiConnect.xml"'
41- ) ;
39+ return execCommand ( 'netsh' , [
40+ 'wlan' ,
41+ 'add' ,
42+ 'profile' ,
43+ 'filename="nodeWifiConnect.xml"'
44+ ] ) ;
4245 } )
4346 . then ( function ( ) {
44- var cmd =
45- 'netsh wlan connect ssid="' + ap . ssid + '" name="' + ap . ssid + '"' ;
47+ var cmd = 'cmd' ;
48+ var params = [
49+ 'wlan' ,
50+ 'connect' ,
51+ 'ssid="' + ap . ssid + '"' ,
52+ 'name="' + ap . ssid + '"'
53+ ] ;
4654 if ( config . iface ) {
47- cmd += ' interface="' + config . iface + '"' ;
55+ params . push ( ' interface="' + config . iface + '"' ) ;
4856 }
49- return execCommand ( cmd ) ;
57+ return execCommand ( cmd , params ) ;
5058 } )
5159 . then ( function ( ) {
5260 return execCommand ( 'del ".\\nodeWifiConnect.xml"' ) ;
@@ -55,9 +63,14 @@ function connectToWifi(config, ap, callback) {
5563 callback && callback ( ) ;
5664 } )
5765 . catch ( function ( err ) {
58- exec ( 'netsh wlan delete profile "' + ap . ssid + '"' , { env } , function ( ) {
59- callback && callback ( err ) ;
60- } ) ;
66+ execFile (
67+ 'netsh' ,
68+ [ 'wlan' , 'delete' , 'profile "' + ap . ssid + '"' ] ,
69+ { env } ,
70+ function ( ) {
71+ callback && callback ( err ) ;
72+ }
73+ ) ;
6174 } ) ;
6275}
6376
0 commit comments