#!/bin/bash #Author: Nishchal Siddharth Pandey echo "Created by Nishchal Siddharth [GitHub: nisiddharth]" echo "" echo "This is for MNNIT campus proxy only, adds 'edcguest' as Username and Password and uses 3128 as Port number" # don't let script run as root if (( $EUID == 0 )); then echo "\n\nPlease DON'T run as root!\n" exit fi read -p "Please enter the proxy host you want to apply (eg, 172.31.100.29) : " proxy echo "" echo "Setting up $proxy" # Removing ##################################################################### # Removing proxies from environment variables echo "Removing proxies from environment variables" sudo sed -i '/http_proxy/d' /etc/environment sudo sed -i '/https_proxy/d' /etc/environment sudo sed -i '/ftp_proxy/d' /etc/environment sudo sed -i '/socks_proxy/d' /etc/environment sudo sed -i '/all_proxy/d' /etc/environment sudo sed -i '/HTTP_PROXY/d' /etc/environment sudo sed -i '/HTTPS_PROXY/d' /etc/environment sudo sed -i '/FTP_PROXY/d' /etc/environment sudo sed -i '/SOCKS_PROXY/d' /etc/environment sudo sed -i '/ALL_PROXY/d' /etc/environment # these are to remove the trailing newlines sudo perl -i -pe 'chomp if eof' /etc/environment sudo perl -i -pe 'chomp if eof' /etc/environment echo "done." # Removing proxies from apt package manager echo "Removing proxies from apt package manager" sudo sed -i '/Acquire::http::proxy/d' /etc/apt/apt.conf sudo sed -i '/Acquire::https::proxy/d' /etc/apt/apt.conf sudo sed -i '/Acquire::ftp::proxy/d' /etc/apt/apt.conf sudo sed -i '/Acquire::socks::proxy/d' /etc/apt/apt.conf # these are to remove the trailing newlines sudo perl -i -pe 'chomp if eof' /etc/apt/apt.conf sudo perl -i -pe 'chomp if eof' /etc/apt/apt.conf echo "done." # Adding ####################################################################### # Adding proxies to environment variables echo "Adding proxies to environment variables" # these are to remove the trailing newlines sudo perl -i -pe 'chomp if eof' /etc/environment sudo perl -i -pe 'chomp if eof' /etc/environment # adding sudo sh -c "echo '\nhttp_proxy=http://edcguest:edcguest@$proxy:3128/\nhttps_proxy=http://edcguest:edcguest@$proxy:3128/\nftp_proxy=http://edcguest:edcguest@$proxy:3128/\n' >> /etc/environment" sudo sh -c "echo '\nHTTP_PROXY=http://edcguest:edcguest@$proxy:3128/\nHTTPS_PROXY=http://edcguest:edcguest@$proxy:3128/\nFTP_PROXY=http://edcguest:edcguest@$proxy:3128/\n' >> /etc/environment" echo "done." # Adding proxies to apt package manager echo "Adding proxies to apt package manager" # these are to remove the trailing newlines sudo perl -i -pe 'chomp if eof' /etc/apt/apt.conf sudo perl -i -pe 'chomp if eof' /etc/apt/apt.conf # adding sudo sh -c "echo '\nAcquire::http::proxy \"http://edcguest:edcguest@$proxy:3128/\";\nAcquire::https::proxy \"http://edcguest:edcguest@$proxy:3128/\";\nAcquire::ftp::proxy \"http://edcguest:edcguest@$proxy:3128/\";\n' >> /etc/apt/apt.conf" echo "done." # Applying proxies to snap package manager echo "Applying proxies to snap package manager" sudo snap set system proxy.http=http://edcguest:edcguest@$proxy:3128/ sudo snap set system proxy.https=http://edcguest:edcguest@$proxy:3128/ echo "done." # Applying proxy settings in dconf echo "Applying proxy settings in dconf" /usr/bin/gsettings set org.gnome.system.proxy mode 'manual' /usr/bin/gsettings set org.gnome.system.proxy.http host "edcguest:edcguest@$proxy" /usr/bin/gsettings set org.gnome.system.proxy.http port 3128 /usr/bin/gsettings set org.gnome.system.proxy.https host "edcguest:edcguest@$proxy" /usr/bin/gsettings set org.gnome.system.proxy.https port 3128 /usr/bin/gsettings set org.gnome.system.proxy.ftp host "edcguest:edcguest@$proxy" /usr/bin/gsettings set org.gnome.system.proxy.ftp port 3128 echo "done." # Applying proxy settings to git echo "Applying proxy settings to git" git config --global http.proxy http://edcguest:edcguest@$proxy:3128 git config --global https.proxy http://edcguest:edcguest@$proxy:3128 echo "done." # Applying proxy settings to npm echo "Applying proxy settings to npm" npm config set proxy http://edcguest:edcguest@$proxy:3128 npm config set https-proxy http://edcguest:edcguest@$proxy:3128 echo "done." # All done! echo "" echo "All done! $proxy successfully applied, if connectivity problem still persists please consider logging out then in or rebooting your system."