mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-05 01:53:32 +01:00
ccf318ae59
svn:r3742
74 lines
1.8 KiB
Bash
74 lines
1.8 KiB
Bash
#!/bin/sh
|
|
# A script to turn Tor SOCKS4a in Privoxy on or off.
|
|
|
|
CONFFILE=/etc/privoxy/config # privoxy config file.
|
|
TOR_REG="forward.*localhost:9050" # Regular expression to find Tor in privoxy
|
|
PRIVOXY="/etc/init.d/privoxy restart" # command to reload privoxy config file.
|
|
SED="/bin/sed" # sed command, of course.
|
|
GREP="/bin/grep" # grep command.
|
|
|
|
usage () {
|
|
echo "\
|
|
privoxy-tor-toggle: Change Privoxy's configuration to use/not use Tor.
|
|
Usage:
|
|
privoxy.tor <-- Switch Tor on or off.
|
|
privoxy.tor [on|off] <-- Set Tor on or off.
|
|
privoxy.tor status <-- Display Tor's current status.
|
|
privoxy.tor [-h|--help|-?] <-- Print usage.
|
|
"
|
|
}
|
|
|
|
# Find out the current status of tor. Set $tor_status
|
|
get_status () {
|
|
gret=`$GREP -l -e "^$TOR_REG" $CONFFILE`
|
|
if [ x$gret = x ] ; then
|
|
tor_status=off;
|
|
else
|
|
tor_status=on;
|
|
fi
|
|
return
|
|
}
|
|
|
|
# Turn tor on/off according to $1
|
|
set_tor () {
|
|
tor_gate=$1
|
|
get_status
|
|
if [ $tor_status = $tor_gate ] ; then
|
|
echo "Tor is already $1."
|
|
return
|
|
elif [ $tor_gate = flip ] ; then
|
|
if [ $tor_status = on ] ; then
|
|
tor_gate=off
|
|
elif [ $tor_status = off ] ; then
|
|
tor_gate=on
|
|
fi
|
|
fi
|
|
echo "Turning Tor $tor_gate..."
|
|
if [ $tor_gate = on ] ; then
|
|
reg=s/^#\($TOR_REG\)/\\1/
|
|
$SED -i.bak -r "$reg" $CONFFILE
|
|
else
|
|
reg=s/^\($TOR_REG\)/#\\1/
|
|
$SED -i.bak -r "$reg" $CONFFILE
|
|
fi
|
|
$PRIVOXY
|
|
return 0;
|
|
}
|
|
|
|
if [ x$1 = x ] ; then
|
|
set_tor flip
|
|
elif [ $1 = on ] ; then
|
|
set_tor on
|
|
elif [ $1 = off ] ; then
|
|
set_tor off
|
|
elif [ $1 = status ] ; then
|
|
get_status
|
|
echo "Tor is $tor_status"
|
|
elif [ $1 = --help ] || [ $1 = -h ] || [ $1 = "-?" ] ; then
|
|
usage
|
|
exit 0
|
|
else
|
|
echo "Unrecognized option: \"$1\""
|
|
fi
|
|
|