#!/bin/bash
PATH=$PATH:$HOME/bin:/bin:/usr/bin:/sbin:/usr/sbin
FILE=/tmp/`date +%s`
PID=/tmp/setProxy.pid
STATUS=/tmp/setProxy.stat
VERSION=1.6
_description(){
cat <<eof
Autor:
Ricardo Brito do Nascimento
Email:
brito[at]incolume.com.br
Descrição:
Instalar: para instalar este script execute: \'source set_proxy install\';
Desinstalar: para desinstalar este script execute: \'source set_proxy uninstall\';
Comprovar execução: para comprovar a execução do script, execute o comando \'export\';
OBS: após executar os comandos \'source set_proxy install\' e \'source set_proxy uninstall\',
o shell será finalizado e fechado para carregar as variáveis de ambiente necessárias.
eof
}
_help(){
cat << eof
ex:
$ source <script> [install,uninstall]
$ <script> [start,stop,status,restart--help,-h,-v,-V,--version]
install) carrega as variáveis necessárias para o script no ~/bin, é necessário o source para executar;
uninstall) limpa as variáveis necessárias para o script funcionar e
desinstala o script no ~/bin, é necessário o source para executar;
start) ativa o proxy;
stop) desativa o proxy;
status) indica se o script foi utilizado para configurar o proxy;
restart) executa um stop e logo após um start;
--help|-h) esta ajuda;
--version|-v|-V) exibe a versão do script;
eof
}
_version(){
echo $VERSION
echo
}
_setProxy(){
IP=`ifconfig |grep inet|grep -Eo \'([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}\'|egrep -v ^127|egrep -v ^255|head -1`
echo IP identificado: $IP
NET=`awk -F. \'{print $1"."$2"."$3}\' <<< $IP`
#echo $NET
if [ "$NET" == "192.168.56" ]; then
http_proxy=http://192.168.56.14:8080
https_proxy=http://192.168.56.14:8080
ftp_proxy=http://192.168.56.14:8080
elif [ "$NET" == "192.168.25" ]; then
http_proxy=http://192.168.25.1:8080
https_proxy=http://192.168.25.1:8080
ftp_proxy=http://192.168.25.1:8080
else
http_proxy=http://192.168.101.101:8080
https_proxy=http://192.168.101.101:8080
ftp_proxy=http://192.168.101.101:8080
fi
no_proxy="192.168.56.150,localhost"
echo "export http_proxy=$http_proxy && export https_proxy=$https_proxy && export ftp_proxy=$ftp_proxy && export no_proxy=$no_proxy" |tee $FILE| sed \'s/ &&//g; s/export /\\n/g\' |sort -n > $STATUS
}
_erro(){
cat << fim
opção inválida, consulte o help, com as opções --help ou, -h.
fim
}
_install(){
echo "alias set_proxy.sh=\'source $HOME/bin/set_proxy.sh\'; #set_proxy.sh" >> $HOME/.bashrc
exit 0;
}
_uninstall(){
sed -i \'/#set_proxy.sh/d\' $HOME/.bashrc
_stop;
exit 0;
}
_rmFile(){
[ -e $1 ] && rm -f $1
}
_start(){
#echo $FILE
_setProxy;
#echo $FILE
source $FILE;
touch $PID
_rmFile $FILE
echo Proxy bash ativado
}
_stop(){
echo "unset http_proxy https_proxy ftp_proxy no_proxy" > $FILE
source $FILE
_rmFile $PID
_rmFile $STATUS
_rmFile $FILE
echo Proxy bash inativado
}
_status(){
[ -e $PID ] && echo "Proxy bash ativo." || echo "Proxy bash inativo."
[ -e $STATUS ] && cat $STATUS
}
_restart(){
_stop;
_start;
}
case $1 in
install) _install;;
uninstall) _uninstall;;
start) _start;;
stop) _stop;;
status) _status;;
restart) _restart;;
-h|--help) _description;_help;;
-v|-V|--version) _version;;
\'\') echo \'Syntaxe:\'
_help;
echo;;
*) _erro ;;
esac