-
-
Save bsradcliffe/4e041c4b8af7b6db9578 to your computer and use it in GitHub Desktop.
Toggling Proxy Settings for Git, NPM, Bower and Package Control (Mac OS X) automatically
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
# Configure the below variables with your respective Keychain and proxy information | |
# Grabs your user password from Keychain | |
export SECRET="`security find-generic-password -w -s <PASSWORD_PROFILE>`" | |
AUTH="$USER:$SECRET" | |
PROXY='<http://PROXY:PORT>' | |
AUTH_PROXY=<'http://'$AUTH'@PROXY:PORT>' | |
if [ "$1" == "on" ]; then | |
echo "Exporting proxy." | |
export http_proxy=$AUTH_PROXY | |
export https_proxy=$AUTH_PROXY | |
echo "Setting git proxy to $AUTH_PROXY." | |
git config --global http.proxy $AUTH_PROXY | |
git config --global https.proxy $AUTH_PROXY | |
echo "Setting npm proxy to $AUTH_PROXY." | |
npm config set proxy $AUTH_PROXY | |
npm config set https-proxy $AUTH_PROXY | |
echo "Setting bower proxy to $AUTH_PROXY." | |
sed -i.bak 's|"proxy": ""|"proxy": "'"$AUTH_PROXY"'"|g' $HOME/.bowerrc | |
sed -i.bak 's|"https-proxy": ""|"https-proxy": "'"$AUTH_PROXY"'"|g' $HOME/.bowerrc | |
echo "Setting Package Control proxy to $AUTH_PROXY." | |
sed -i.bak 's|"http_proxy": ""|"http_proxy": "'"$PROXY"'"|g' "$HOME/Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings" | |
sed -i.bak 's|"https_proxy": ""|"https_proxy": "'"$PROXY"'"|g' "$HOME/Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings" | |
sed -i.bak 's|"proxy_username": ""|"proxy_username": "'"$USER"'"|g' "$HOME/Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings" | |
sed -i.bak 's|"proxy_password": ""|"proxy_password": "'"$SECRET"'"|g' "$HOME/Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings" | |
else | |
echo "Resetting proxy." | |
export http_proxy= | |
export https_proxy= | |
echo "Resetting git proxy." | |
git config --global --unset http.proxy > /dev/null 2>&1 | |
git config --global --unset https.proxy > /dev/null 2>&1 | |
echo "Resetting npm proxy." | |
npm config rm proxy > /dev/null 2>&1 | |
npm config rm https-proxy > /dev/null 2>&1 | |
echo "Resetting bower proxy." | |
sed -i.bak 's|"proxy": "'"$AUTH_PROXY"'"|"proxy": ""|g' $HOME/.bowerrc | |
sed -i.bak 's|"https-proxy": "'"$AUTH_PROXY"'"|"https-proxy": ""|g' $HOME/.bowerrc | |
echo "Resetting Package Control proxy." | |
sed -i.bak 's|"http_proxy": "'"$PROXY"'"|"http_proxy": ""|g' "$HOME/Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings" | |
sed -i.bak 's|"https_proxy": "'"$PROXY"'"|"https_proxy": ""|g' "$HOME/Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings" | |
sed -i.bak 's|"proxy_username": "'"$USER"'"|"proxy_username": ""|g' "$HOME/Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings" | |
sed -i.bak 's|"proxy_password": "'"$SECRET"'"|"proxy_password": ""|g' "$HOME/Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Modified for proper package control configuration and variabilizing sensitive information.
I'm not sure if sed is correctly implemented here--providing a regular expression might prove a better alternative in substitutions than doing a static check against strings.