diff options
Diffstat (limited to 'contrib/privoxy-tor-toggle')
-rw-r--r-- | contrib/privoxy-tor-toggle | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/contrib/privoxy-tor-toggle b/contrib/privoxy-tor-toggle new file mode 100644 index 0000000000..5e865c9b5c --- /dev/null +++ b/contrib/privoxy-tor-toggle @@ -0,0 +1,71 @@ +#!/bin/sh +# A script to turn tor sock4a in privoxy on or off. + +CONFFILE=/etc/privoxy/config # privoxy config file. +TOR_REG="forward.*localhost:9050" # Regular expression open the 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 "\ +Usage: + privoxy.tor <-- No arguments. Switch the tor on or off. + privoxy.tor [on|off] <-- Set the tor on or off. + privoxy.tor !.*xia <-- Any argument other than above shows + current status of the tor. + 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 "The 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 the 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 = --help ] || [ $1 = -h ] || [ $1 = "-?" ] ; then + usage + exit 0 +else + get_status + echo "Currently, the tor is $tor_status." +fi + |