diff --git a/lib/proxyManager.js b/lib/proxyManager.js index e3a3f62..5e8b02c 100644 --- a/lib/proxyManager.js +++ b/lib/proxyManager.js @@ -3,19 +3,19 @@ var child_process = require('child_process'); var networkTypes = ['Ethernet', 'Thunderbolt Ethernet', 'Wi-Fi']; function execSync(cmd) { - var stdout, status = 0; + var stdout, status = 0; - try { - stdout = child_process.execSync(cmd); - } catch (err) { - stdout = err.stdout; - status = err.status; - } + try { + stdout = child_process.execSync(cmd); + } catch (err) { + stdout = err.stdout; + status = err.status; + } - return { - stdout: stdout.toString(), - status: status - }; + return { + stdout: stdout.toString(), + status: status + }; } @@ -54,68 +54,68 @@ var macProxyManager = {}; macProxyManager.getNetworkType = function() { - for (var i = 0; i < networkTypes.length; i++) { + for (var i = 0; i < networkTypes.length; i++) { - var - type = networkTypes[i], - result = execSync('networksetup -getwebproxy ' + type); + var + type = networkTypes[i], + result = execSync('networksetup -getwebproxy ' + type); - if (result.status === 0) { - macProxyManager.networkType = type; - return type; - } - } + if (result.status === 0) { + macProxyManager.networkType = type; + return type; + } + } - throw new Error('Unknown network type'); + throw new Error('Unknown network type'); }; macProxyManager.enableGlobalProxy = function(ip, port) { - if (!ip && !port) { - console.log('proxy server\'s ip and port is required'); - return; - }; + if (!ip && !port) { + console.log('proxy server\'s ip and port is required'); + return; + }; - var networkType = macProxyManager.networkType || macProxyManager.getNetworkType(); + var networkType = macProxyManager.networkType || macProxyManager.getNetworkType(); - var result = execSync( + var result = execSync( - // set http proxy - 'sudo networksetup -setwebproxy ${networkType} ${ip} ${port}; ' - .replace("${networkType}", networkType) - .replace("${ip}", ip) - .replace("${port}", port) + + // set http proxy + 'sudo networksetup -setwebproxy ${networkType} ${ip} ${port}; ' + .replace("${networkType}", networkType) + .replace("${ip}", ip) + .replace("${port}", port) + - // set https proxy - 'sudo networksetup -setsecurewebproxy ${networkType} ${ip} ${port}' - .replace("${networkType}", networkType) - .replace("${ip}", ip) - .replace("${port}", port)); + // set https proxy + 'sudo networksetup -setsecurewebproxy ${networkType} ${ip} ${port}' + .replace("${networkType}", networkType) + .replace("${ip}", ip) + .replace("${port}", port)); - return result; + return result; }; macProxyManager.disableGlobalProxy = function() { - var networkType = macProxyManager.networkType || macProxyManager.getNetworkType(); + var networkType = macProxyManager.networkType || macProxyManager.getNetworkType(); - var result = execSync( + var result = execSync( - // disable http proxy - 'sudo networksetup -setwebproxystate ${networkType} off; ' - .replace(/\$\{networkType\}/g, networkType) + + // disable http proxy + 'sudo networksetup -setwebproxystate ${networkType} off; ' + .replace(/\$\{networkType\}/g, networkType) + - // disable https proxy - 'sudo networksetup -setsecurewebproxystate ${networkType} off' - .replace(/\$\{networkType\}/g, networkType)); + // disable https proxy + 'sudo networksetup -setsecurewebproxystate ${networkType} off' + .replace(/\$\{networkType\}/g, networkType)); - return result; + return result; }; macProxyManager.getProxyState = function() { - var networkType = macProxyManager.networkType || macProxyManager.getNetworkType(); - var result = execSync('networksetup -getwebproxy ${networkType}'.replace('${networkType}', networkType)); + var networkType = macProxyManager.networkType || macProxyManager.getNetworkType(); + var result = execSync('networksetup -getwebproxy ${networkType}'.replace('${networkType}', networkType)); - return result; + return result; }; @@ -123,6 +123,8 @@ macProxyManager.getProxyState = function() { /** * ------------------------------------------------------------------------ * windows proxy manager + * + * netsh does not alter the settings for IE * ------------------------------------------------------------------------ */ @@ -130,33 +132,33 @@ var winProxyManager = {}; winProxyManager.enableGlobalProxy = function(ip, port) { - if (!ip && !port) { - console.log('proxy server\'s ip and port is required'); - return; - }; + if (!ip && !port) { + console.log('proxy server\'s ip and port is required'); + return; + }; - return execSync( + return execSync( - // set proxy - 'reg add "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyServer /t REG_SZ /d ${ip}:${port} /f & ' - .replace("${ip}", ip) - .replace("${port}", port) + + // set proxy + 'reg add "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyServer /t REG_SZ /d ${ip}:${port} /f & ' + .replace("${ip}", ip) + .replace("${port}", port) + - // enable proxy - 'reg add "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f'); + // enable proxy + 'reg add "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f'); }; winProxyManager.disableGlobalProxy = function() { - return execSync('reg add "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f'); + return execSync('reg add "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f'); }; winProxyManager.getProxyState = function() { - return ''; + return ''; }; winProxyManager.getNetworkType = function() { - return ''; + return ''; }; module.exports = /^win/.test(process.platform) ? winProxyManager : macProxyManager;