Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
dotfiles/scripts/rmitproxy_silent
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
126 lines (99 sloc)
3.96 KB
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/bash | |
# ============================================================================= | |
# If the computer is currently connected to RMIT's network then this | |
# script will set the appropriate proxy environment variables, otherwise | |
# it just unsets everything | |
# For ubuntu users: edit info in the "Sensitive info" part, then: | |
# | |
# sudo cp ~/dotfiles/scripts/rmitproxy_silent /etc/network/if-up.d/rmitproxy_silent | |
# sudo chmod 700 /etc/network/if-up.d/rmitproxy_silent | |
# | |
# to execute it every time your computer connects to a network :) | |
# Inpired by: | |
# http://askubuntu.com/questions/150210/how-do-i-set-systemwide-proxy-servers-in-xubuntu-lubuntu-or-ubuntu-studio/151047#151047 | |
# ============================================================================= | |
# RMIT's SSID and basic info | |
ssid=RMITWPA | |
host=proxy.rmit.edu.vn | |
port=8080 | |
# Sensitive info - ENTER YOUR INFO HERE | |
# ===================================== | |
user='enter_your_s_number_here' | |
pass='your_rmit_account_password' | |
sudopw='your_sudo_password' | |
# ===================================== | |
# DON'T TOUCH ANYTHING BELOW unless you know what you're doing! | |
# Check if this system has git | |
git --version 2>&1 >/dev/null | |
git_installed=$? | |
rmitOn() { | |
# Standard environment variables | |
http_str=http://$user:$pass@$host:$port | |
https_str=https://$user:$pass@$host:$port | |
http=( http_proxy HTTP_PROXY FTP_PROXY ftp_proxy ) | |
for envar in $http | |
do | |
export $envar=$http_str | |
done | |
https=( https_proxy HTTPS_PROXY ) | |
for envar in $https | |
do | |
export $envar=$https_str | |
done | |
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" | |
export NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com" | |
# Gnome proxy settings | |
gsettings set org.gnome.system.proxy.http host $host | |
gsettings set org.gnome.system.proxy.https host $host | |
gsettings set org.gnome.system.proxy mode 'manual' | |
# Hardcore stuff ahead - requiring sudo permission | |
# ===================================================================== | |
# /etc/apt/apt.conf - If you ever want to install stuff while at RMIT | |
aptconf=`echo -e "Acquire::http::proxy \"$http_str\";\nAcquire::https::proxy \"$https_str\";"` | |
# Write apt.conf file content to temporary file then move it to its | |
# appropriate location. For some weird reason I can't write directly to | |
# a file in /etc/apt/ | |
echo $aptconf > ~/tmp_apt_conf | |
echo $sudopw | sudo -S mv -f ~/tmp_apt_conf /etc/apt/apt.conf || true | |
# Git | |
if [ $git_installed -eq 0 ]; then | |
git config --global http.proxy "$http_str" || true | |
git config --global https.proxy "$https_str" || true | |
git config --global core.gitproxy '/bin/gitproxy' | |
fi | |
} | |
rmitOff() { | |
envars=( https_proxy HTTPS_PROXY http_proxy HTTP_PROXY FTP_PROXY ftp_proxy all_proxy ALL_PROXY) | |
for envar in $envars | |
do | |
export $envar="" | |
done | |
# Gnome proxy settings | |
gsettings set org.gnome.system.proxy.http host "" | |
gsettings set org.gnome.system.proxy.https host "" | |
gsettings set org.gnome.system.proxy mode 'none' | |
# Hardcore stuff ahead - requiring sudo permission | |
# ===================================================================== | |
# Switch apt conf file | |
aptconf="" | |
# Write apt.conf file content to temporary file then move it to its | |
# appropriate location. For some weird reason I can't write directly to | |
# a file in /etc/apt/ | |
echo $aptconf > ~/tmp_apt_conf | |
echo $sudopw | sudo -S mv -f ~/tmp_apt_conf /etc/apt/apt.conf || true | |
# Git | |
if [ $git_installed -eq 0 ]; then | |
git config --global http.proxy "" || true | |
git config --global https.proxy "" || true | |
git config --global core.gitproxy '' | |
fi | |
} | |
# If current network SSID is RMIT's then set up the proxy, | |
# otherwise unset everything | |
if [ `iwgetid -s | grep $ssid` ]; then | |
rmitOn | |
echo "Connected to '$ssid'. Proxy settings applied." | |
else | |
rmitOff | |
echo "Not on '$ssid'. Proxy settings cleared." | |
fi |