#!/bin/sh

. patchfns 2>/dev/null ||
. /usr/lib/patch-scripts/patchfns 2>/dev/null ||
. $PATCHSCRIPTS_LIBDIR/patchfns 2>/dev/null ||
{
	echo "Impossible to find my library 'patchfns'."
	echo "Check your install, or go to the right directory"
	exit 1
}

do_remove()
{
	if ! grep "^+++" $P/patches/"$1".patch > /dev/null
	then
		true
	elif patch -R -p1 -s -i $P/patches/"$1".patch
	then
		true
	else
		echo SOMETHING WENT WRONG
		exit 1
	fi
}

kill_old_ones()
{
	FILES=$(cat $P/pc/$1.pc)
	for file in $FILES
	do
		if [ -e "$file"~"$1" ]
		then
#			mv -f "$file"~"$1" $(mergebase_name "$file" "$1")
			rm -f "$file"~"$1"
		fi
	done
}

usage()
{
	echo "Usage: rpatch patchname"
	exit 1
}

if [ $# == 0 ]
then
	usage
fi

PATCH_NAME=$(stripit $1)

if is_applied "$PATCH_NAME"
then
	if can_remove "$PATCH_NAME"
	then
		do_remove "$PATCH_NAME"
		kill_old_ones "$PATCH_NAME"
		remove_from_db "$PATCH_NAME"
	else
		echo "$PATCH_NAME" does not remove cleanly
		exit 1
	fi
else
	echo "$PATCH_NAME" is not applied
	exit 1
fi

top=$(top_patch)
if [ x"$top" == x ]
then
	msg="no patches applied"
else
	msg="now at $top"
fi

echo Removed $PATCH_NAME, $msg

