dotfiles/PowerShell/Microsoft.PowerShell_profile.ps1

41 lines
1.5 KiB
PowerShell

# Get internet settings
$settings = Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings';
function Set-Proxy {
# Get proxy data from settings
$proxy_server = $settings.proxyServer;
# Set proxy environment variables
$env:http_proxy = ($env:https_proxy = $proxy_server)
[System.Environment]::SetEnvironmentVariable('http_proxy', $proxy_server, 'User');
[System.Environment]::SetEnvironmentVariable('https_proxy', $proxy_server, 'User');
# Set proxy git settings
git config --global http.proxy $proxy_server;
git config --global https.proxy $proxy_server;
# Set proxy npm settings
npm config set proxy $proxy_server;
npm config set https-proxy $proxy_server;
}
Set-Alias -Name proxy-set -Value Set-Proxy
function Unset-Proxy {
# Unset proxy environment variables
$env:http_proxy = ($env:https_proxy = '')
[System.Environment]::SetEnvironmentVariable('http_proxy', [NullString]::Value, 'User');
[System.Environment]::SetEnvironmentVariable('https_proxy', [NullString]::Value, 'User');
# Unset proxy git settings
git config --global --unset http.proxy;
git config --global --unset https.proxy;
# Delete proxy npm settings
npm config delete proxy;
npm config delete https-proxy;
}
Set-Alias -Name proxy-unset -Value Unset-Proxy
if ($settings.proxyEnable -and (!$env:http_proxy)) { Set-Proxy }
elseif ((!$settings.proxyEnable) -and $env:http_proxy) { Unset-Proxy }