Skip to content

Instantly share code, notes, and snippets.

@denitram
Last active March 7, 2016 19:02
Show Gist options
  • Save denitram/9640902 to your computer and use it in GitHub Desktop.
Save denitram/9640902 to your computer and use it in GitHub Desktop.
Proxy settings
#!/bin/bash
# Set proxy settings in Ubuntu for eclipse, maven and apt
#### variables
ECLIPSE_SETTINGS_DIR="/home/martine/apps/springsource/sts-3.4.0.M1/configuration/.settings/"
ECLIPSE_SETTINGS_FILE="org.eclipse.core.net.prefs"
ECLIPSE_SETTINGS_PROXY="org.eclipse.core.net.prefs-PROXY"
ECLIPSE_SETTINGS_NOPROXY="org.eclipse.core.net.prefs-NOPROXY"
ECLIPSE_SETTINGS=$ECLIPSE_SETTINGS_DIR$ECLIPSE_SETTINGS_FILE
ECLIPSE_PROXY=$ECLIPSE_SETTINGS_DIR$ECLIPSE_SETTINGS_PROXY
ECLIPSE_NOPROXY=$ECLIPSE_SETTINGS_DIR$ECLIPSE_SETTINGS_NOPROXY
MAVEN_SETTINGS_DIR="/home/martine/.m2/"
MAVEN_SETTINGS_FILE="settings.xml"
MAVEN_SETTINGS_PROXY="settings.xml-PROXY"
MAVEN_SETTINGS_NOPROXY="settings.xml-NOPROXY"
MAVEN_SETTINGS=$MAVEN_SETTINGS_DIR$MAVEN_SETTINGS_FILE
MAVEN_PROXY=$MAVEN_SETTINGS_DIR$MAVEN_SETTINGS_PROXY
MAVEN_NOPROXY=$MAVEN_SETTINGS_DIR$MAVEN_SETTINGS_NOPROXY
APT_SETTINGS_DIR="/etc/apt/"
APT_SETTINGS_FILE="apt.conf"
APT_SETTINGS_PROXY="apt.conf-PROXY"
APT_SETTINGS_NOPROXY="apt.conf-NOPROXY"
APT_SETTINGS=$APT_SETTINGS_DIR$APT_SETTINGS_FILE
APT_PROXY=$APT_SETTINGS_DIR$APT_SETTINGS_PROXY
APT_NOPROXY=$APT_SETTINGS_DIR$APT_SETTINGS_NOPROXY
### functions
is_symlink_eclipse() {
[ -h "$ECLIPSE_SETTINGS" ]
}
is_symlink_maven() {
[ -h "$MAVEN_SETTINGS" ]
}
is_symlink_apt() {
[ -h "$APT_SETTINGS" ]
}
usage() {
echo "Usage: $0 proxy or no_proxy"
exit 1
}
is_not_root() {
[ "$EUID" != 0 ]
}
set_proxy_eclipse()
{
if is_symlink_eclipse
then
echo "Change eclipse settings symlink"
`sudo -u ${USERNAME} rm $ECLIPSE_SETTINGS`; `sudo -u ${USERNAME} ln -s $ECLIPSE_PROXY $ECLIPSE_SETTINGS`
echo "Set proxy for eclipse"
else
echo "$ECLIPSE_SETTINGS is not a symlink - doing nothing"
fi
}
set_no_proxy_eclipse()
{
if is_symlink_eclipse
then
echo "Change eclipse settings symlink"
`sudo -u ${USERNAME} rm $ECLIPSE_SETTINGS`; `sudo -u ${USERNAME} ln -s $ECLIPSE_NOPROXY $ECLIPSE_SETTINGS`
echo "Set NO proxy for eclipse"
else
echo "$ECLIPSE_SETTINGS is not a symlink - doing nothing"
fi
}
set_proxy_maven()
{
if is_symlink_maven
then
echo "Change maven settings symlink"
`sudo -u ${USERNAME} rm $MAVEN_SETTINGS`; `sudo -u ${USERNAME} ln -s $MAVEN_PROXY $MAVEN_SETTINGS`
echo "Set proxy for maven"
else
echo "$MAVEN_SETTINGS is not a symlink - doing nothing"
fi
}
set_no_proxy_maven()
{
if is_symlink_maven
then
echo "Change maven settings symlink"
`sudo -u ${USERNAME} rm $MAVEN_SETTINGS`; `sudo -u ${USERNAME} ln -s $MAVEN_NOPROXY $MAVEN_SETTINGS`
echo "Set NO proxy for maven"
else
echo "$MAVEN_SETTINGS is not a symlink - doing nothing"
fi
}
set_proxy_apt()
{
if is_symlink_apt
then
echo "Change apt settings symlink"
`rm $APT_SETTINGS`; `ln -s $APT_PROXY $APT_SETTINGS`
echo "Set proxy for apt"
else
echo "$APT_SETTINGS is not a symlink - doing nothing"
fi
}
set_no_proxy_apt()
{
if is_symlink_apt
then
echo "Change apt settings symlink"
`rm $APT_SETTINGS`; `ln -s $APT_NOPROXY $APT_SETTINGS`
echo "Set NO proxy for apt"
else
echo "$APT_SETTINGS is not a symlink - doing nothing"
fi
}
#### main
if is_not_root
then
echo "You must be root to run $0"
exit 100
elif [ "$1" = "proxy" ]
then
set_proxy_eclipse; set_proxy_maven; set_proxy_apt
elif [ "$1" = "no_proxy" ]
then
set_no_proxy_eclipse; set_no_proxy_maven; set_no_proxy_apt
else
usage
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment