#!/bin/bash

. /usr/local/Reductor/etc/const

set -eu

usage() {
	echo "$0 add our.iplist 1.4.8.8"
	echo "$0 del our.list http://vk.com"
	echo "$0 flush our.whitelist"
	echo "$0 save our.whitelist"
	echo "$0 save"
	echo "$0 list"
	echo "$0 help"
	exit 0
}

add() {
	local LIST="$LISTDIR/$1"
	local ENTRY="$2"
	if ! egrep -qw "^$ENTRY$" "$LIST"; then
		echo "$ENTRY" >> "$LIST"
	fi
}

del() {
	local LIST="$LISTDIR/$1"
	local ENTRY="$2"
	if egrep -qw "^$ENTRY$" "$LIST"; then
		egrep -vw "^$ENTRY$" "$LIST" > "$LIST.tmp.$$" || true
		mv -f "$LIST.tmp" "$LIST"
	fi
}

list() {
	ls $LISTDIR/our.* | sed 's|.*/||g'
}

flush() {
	local LIST="$LISTDIR/$1"
	> "$LIST"
}

save() {
	if [ "$#" == 0 ]; then
		for list in $(list); do
			local LIST="$LISTDIR/$list"
			echo "# $list"
			cat "$LIST"
			echo
		done
		return
	fi
	local LIST="$LISTDIR/$1"
	echo "# $1"
	cat "$LIST"
}

case "${1:-help}" in
	add | del | flush | list | save )
		CMD=$1
		;;
	* )
		CMD=usage
		;;
esac
shift || true
$CMD "$@"
