#!/bin/bash

tinyproxy="/etc/tinyproxy/tinyproxy.conf"
privoxy="/etc/privoxy/config"
ffproxy="/etc/ffproxy/ffproxy.conf"

if [ -z "$1" ]
then
	echo "Usage: $0 ( \"direct\" | proxyhost:port )" >&2
	exit 1
fi
proxy="$1"
proxy_host="${proxy%%:*}"
proxy_port="${proxy##*:}"

if [ "$proxy" == "direct" ]
then
	echo "Proxy: direct connection" >&2
	[ -f "$tinyproxy" ] && /bin/sed -e '/^Upstream/s/^/#/' -i "$tinyproxy"
	[ -f "$privoxy"   ] && /bin/sed -e '/^forward\>/s/^/#/' -i "$privoxy"
	[ -f "$ffproxy"   ] && /bin/sed -e '/^forward_proxy\>/s/^/#/' -i "$ffproxy"
	[ -f "$ffproxy"   ] && /bin/sed -e '/^#\?forward_proxy_port\>/s/.*/forward_proxy_port 0/' -i "$ffproxy"
else
	echo "Proxy: $proxy_host:$proxy_port" >&2
	[ -f "$tinyproxy" ] && /bin/sed -e '/^#\?Upstream/s/.*/Upstream '"$proxy"'/' -i "$tinyproxy"
	[ -f "$privoxy"   ] && /bin/sed -e '/^#\?forward\>/s/.*/forward \/ '"$proxy"'/' -i "$privoxy"
	[ -f "$ffproxy"   ] && /bin/sed -e '/^#\?forward_proxy\>/s/.*/forward_proxy '"$proxy"'/' -i "$ffproxy"
	[ -f "$ffproxy"   ] && /bin/sed -e '/^#\?forward_proxy\>/s/.*/forward_proxy '"$proxy_host"'/' -i "$ffproxy"
	[ -f "$ffproxy"   ] && /bin/sed -e '/^#\?forward_proxy_port\>/s/.*/forward_proxy_port '"$proxy_port"'/' -i "$ffproxy"
fi

[ -x "$tinyproxy" ] && /etc/init.d/tinyproxy restart
[ -x "$privoxy" ] && /etc/init.d/privoxy restart
[ -x "$ffproxy" ] && /etc/init.d/ffproxy restart
exit 0

