|
# configure proxy for git while on corporate network |
|
# From https://gist.github.com/garystafford/8196920 and https://gist.github.com/patik/6d40ded40bf93c2f381b |
|
function proxy_on(){ |
|
# assumes $USERDOMAIN, $USERNAME, $USERDNSDOMAIN |
|
# are existing Windows system-level environment variables |
|
|
|
# assumes $PASSWORD, $PROXY_SERVER, $PROXY_PORT |
|
# are existing Windows current user-level environment variables (your user) |
|
|
|
# environment variables are UPPERCASE even in git bash |
|
export HTTP_PROXY="http://$USERNAME:$PASSWORD@$PROXY_SERVER:$PROXY_PORT" |
|
export HTTPS_PROXY=$HTTP_PROXY |
|
export FTP_PROXY=$HTTP_PROXY |
|
export SOCKS_PROXY=$HTTP_PROXY |
|
|
|
export NO_PROXY="localhost,127.0.0.1,$USERDNSDOMAIN" |
|
|
|
# Update git and npm to use the proxy |
|
git config --global http.proxy $HTTP_PROXY |
|
git config --system http.sslcainfo /bin/curl-ca-bundle.crt |
|
git config --global http.sslcainfo /bin/curl-ca-bundle.crt |
|
# npm config set proxy $HTTP_PROXY |
|
# npm config set https-proxy $HTTP_PROXY |
|
# npm config set strict-ssl false |
|
# npm config set registry "http://registry.npmjs.org/" |
|
|
|
# optional for debugging |
|
export GIT_CURL_VERBOSE=1 |
|
|
|
# optional Self Signed SSL certs and |
|
# internal CA certificate in an corporate environment |
|
export GIT_SSL_NO_VERIFY=1 |
|
|
|
|
|
env | grep -e _PROXY -e GIT_ | sort |
|
# echo -e "\nProxy-related environment variables set." |
|
|
|
# clear |
|
} |
|
|
|
# Enable proxy settings immediately |
|
proxy_on |
|
|
|
# Disable proxy settings |
|
function proxy_off(){ |
|
variables=( \ |
|
"HTTP_PROXY" "HTTPS_PROXY" "FTP_PROXY" "SOCKS_PROXY" \ |
|
"NO_PROXY" "GIT_CURL_VERBOSE" "GIT_SSL_NO_VERIFY" \ |
|
) |
|
|
|
for i in "${variables[@]}" |
|
do |
|
unset $i |
|
done |
|
#Unset the git proxy set with proxy_on |
|
git config --global --unset http.proxy |
|
|
|
env | grep -e _PROXY -e GIT_ | sort |
|
echo -e "\nProxy-related environment variables removed." |
|
} |