|  | @@ -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
 | 
	
		
			
				|  |  | +
 |