-
-
Save gerjantd/13fbdb29a6c9c3ea991f to your computer and use it in GitHub Desktop.
This file contains hidden or 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/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