#! /bin/bash

list="$1"

if ! /usr/sbin/ipset list "${list}" &>/dev/null; then
	echo "USAGE: $0 listname" >&2
	echo "listname must be an existing ipset list." >&2
	exit 1
fi

revfile="/tmp/.zablocks2iptables.${list}"
[ -r "${revfile}" ] && rev=$(<"${revfile}") || rev=0

tf=$(mktemp)
trap "rm '${tf}'" EXIT

wget -q -O "${tf}" http://routes.uls.co.za/pl_diff/?version=${rev} || exit $?

exec 4<"${tf}"
while read LN <&4; do
	op="${LN:0:1}"
	p="${LN:1}"
	case "${op}" in
		+)
			/usr/sbin/ipset add ${list} ${p%% *} 2>/dev/null
			;;
		-)
			/usr/sbin/ipset del ${list} ${p%% *} 2>/dev/null
			;;
		\#)
			if [[ "${p}" = " endrev = "* ]]; then
				endrev="${p##* }"
			fi
			;;
	esac
done

echo "${endrev}" > "${revfile}"
