$env:PROXY_HOST = if ($env:PROXY_HOST) { $env:PROXY_HOST } else { "127.0.0.1" }
$env:PROXY_PORT = if ($env:PROXY_PORT) { $env:PROXY_PORT } else { "1087" }
function Set-AutoProxy {
$hostName = $env:PROXY_HOST
$port = [int]$env:PROXY_PORT
try {
$ok = (Test-NetConnection -ComputerName $hostName -Port $port -WarningAction SilentlyContinue).TcpTestSucceeded
}
catch {
$ok = $false
}
if ($ok) {
$proxyUrl = "http://${hostName}:${port}"
$env:HTTP_PROXY = $proxyUrl
$env:HTTPS_PROXY = $proxyUrl
$env:NO_PROXY = "localhost,127.0.0.1"
$env:NODE_USE_ENV_PROXY = "1"
$env:http_proxy = $proxyUrl
$env:https_proxy = $proxyUrl
$env:no_proxy = "localhost,127.0.0.1"
}
else {
Remove-Item Env:HTTP_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:HTTPS_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:NO_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:NODE_USE_ENV_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:http_proxy -ErrorAction SilentlyContinue
Remove-Item Env:https_proxy -ErrorAction SilentlyContinue
Remove-Item Env:no_proxy -ErrorAction SilentlyContinue
}
}
function proxy-refresh { Set-AutoProxy }
Set-AutoProxy