Let’s toggle nuget proxy configuration with a powershell alias.
Using public nuget sources as well as private sources through a proxy can be tulmiltuous at times. That’s why I wrote a little script to toggle the nuget proxy and enable or disable the private source depending on my location and sort of project I’m working on.
First the script
$proxy = 'my-corp-proxy.com:8080'
$source = "Private-Repository"
$value = (nuget config HTTP_PROXY 2> $null)
if ($proxy -eq $value) {
nuget config -Set HTTP_PROXY=
Write-Host The $value proxy was removed.
nuget sources Disable -Name "$source"
}
else {
nuget config -Set HTTP_PROXY="$proxy"
Write-Host The $proxy proxy was applied.
nuget source Enable -Name "$source"
}
First we defined a proxy
and it’s associated source
. We compare the defined proxy with the current
configuration and when it’s the same, we remove the proxy configuration and source; when it’s
different, we apply the defined proxy and source
Now that we have a script we can quickly run it to toggle between two proxy/source profiles.
I stored it with a pretty long name, nested in some folders and getting to the script was still pretty laborious. So I also used a powershell alias to make it more memorable and conventient to use.
Set-Alias -Name nuget-proxy-toggle -Value C:\Path\To\My\Nested\Very-long-name-powershell-script.ps1
This only sets it for the session, to have it available in any of your powershell instances, you can modify your powershell profile.
notepad $profile
will open your powershell profile. Add the Set-Alias
command from earlier to
this file and save it.