Skip to content

Instantly share code, notes, and snippets.

@edn-g
Forked from jBouyoud/bashrc_init_proxies_utils
Last active August 31, 2017 15:58
Show Gist options
  • Save edn-g/70d200f9cf810d794d7f2db635f99a60 to your computer and use it in GitHub Desktop.
Save edn-g/70d200f9cf810d794d7f2db635f99a60 to your computer and use it in GitHub Desktop.
Utilities functions to setup proxies able to switch easily
############################
# Npm proxy settings
############################
alias init-npm-proxy='echo "" > ~/.npmrc'
alias rm-npm-proxy='sed -i '/proxy/d' ~/.npmrc'
set-npm-proxy() {
echo "proxy=$1" >> ~/.npmrc
echo "https-proxy=$1" >> ~/.npmrc
echo "https_proxy=$1" >> ~/.npmrc
}
############################
# Bower proxy settings
############################
init-bower-proxy() {
echo "{" > ~/.bowerrc
echo '}' >> ~/.bowerrc
}
alias rm-bower-proxy='sed -i '/proxy/d' ~/.bowerrc'
set-bower-proxy() {
sed -i '$ d' ~/.bowerrc
sed -i 's/[^,\{]$/,/' ~/.bowerrc
echo " \"proxy\":\"$1\"," >> ~/.bowerrc
echo " \"https-proxy\":\"$1\"" >> ~/.bowerrc
echo '}' >> ~/.bowerrc
}
############################
# Gradle proxy settings
############################
export GRADLE_USER_HOME="${GRADLE_USER_HOME:-$HOME/.gradle}"
init-gradle-proxy() {
mkdir $GRADLE_USER_HOME 2>/dev/null
cat <<EOF > $GRADLE_USER_HOME/gradle.properties
systemProp.http.keepAlive="true"
systemProp.http.nonProxyHosts=localhost|127.0.0.1
systemProp.https.keepAlive="true"
systemProp.https.nonProxyHosts=localhost|127.0.0.1
EOF
}
alias rm-gradle-proxy='sed -i '/proxy/d' $GRADLE_USER_HOME/gradle.properties'
set-gradle-proxy() {
cat <<EOF >> $GRADLE_USER_HOME/gradle.properties
systemProp.proxySet="true"
systemProp.http.proxyHost=$1
systemProp.http.proxyPort=$2
systemProp.https.proxyHost=$1
systemProp.https.proxyPort=$2
EOF
}
############################
# Maven proxy settings
############################
export MVN_USER_HOME="${MVN_USER_HOME:-$HOME/.m2}"
init-mvn-proxy() {
mkdir $MVN_USER_HOME 2>/dev/null
cat <<EOF > $MVN_USER_HOME/settings.xml
<settings>
</settings>
EOF
}
rm-mvn-proxy() {
cat $MVN_USER_HOME/settings.xml | awk '/<proxies>/{hide=1} /<\/proxies>/ {hide=0} {if (hide==0) print;}' | sed '/proxies/d' > $MVN_USER_HOME/settings.xml
}
set-mvn-proxy() {
sed -i '$ d' $MVN_USER_HOME/settings.xml
cat <<EOF >> $MVN_USER_HOME/settings.xml
<proxies>
<proxy>
<id>http-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>$1</host>
<port>$2</port>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
</proxy>
<proxy>
<id>https-proxy</id>
<active>true</active>
<protocol>https</protocol>
<host>$1</host>
<port>$2</port>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
</proxy>
</proxies>
</settings>
EOF
}
############################
# git proxy settings
############################
rm-git-proxy() {
git config --global --unset http.proxy
git config --global --unset https.proxy
}
set-git-proxy() {
git config --global http.proxy $1
git config --global https.proxy $1
}
############################
# yarn proxy settings
############################
#export PATH="$PATH:$HOME/.config/yarn/global/node_modules/.bin"
rm-yarn-proxy() {
#yarn config delete proxy $1
#yarn config delete https-proxy $1
echo 'Not installed' > /dev/null
}
set-yarn-proxy() {
#yarn config set proxy $1
#yarn config set https-proxy $1
echo 'Not installed' > /dev/null
}
############################
# Global utilities
############################
proxy-rm(){
unset HTTP_PROXY
unset HTTPS_PROXY
unset http_proxy
unset https_proxy
rm-npm-proxy
rm-bower-proxy
rm-gradle-proxy
rm-git-proxy
rm-mvn-proxy
rm-yarn-proxy
}
proxy-init(){
init-npm-proxy
init-bower-proxy
init-gradle-proxy
init-mvn-proxy
}
proxy-set(){
proxy-rm
PROXY=http://$1:$2
export HTTP_PROXY=$PROXY
export HTTPS_PROXY=$PROXY
export http_proxy=$PROXY
export https_proxy=$PROXY
export NO_PROXY=$NO_PROXY,127.0.0.1,localhost
export no_proxy=$no_proxy,127.0.0.1,localhost
set-npm-proxy $PROXY
set-bower-proxy $PROXY
set-gradle-proxy $1 $2
set-mvn-proxy $1 $2
set-git-proxy $PROXY
set-yarn-proxy $PROXY
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment