#! /bin/sh
#
usage="\
Usage: $0 -c <client> [-d <backupnumber> | -l]

delete one specified backup

	-c <client>	- client machine for which the backup was made
	-d <number>	- number of Backup which should deleted
	-l		- list the backups which made for <client>
	-h		- this help

Example:
list backups of <client>
 $0 -c <name of the client which was backed up> -l

remove backup #3 from <client>
 $0 -c <name of the client which was backed up> -d 3
"

typeset -i len
clUser=root
type="rsa"

while test $# -gt 0; do
	case "$1" in
	-c | --client )
		shift; client=$1; shift;;
	-d | --delete )
		shift; bNumber=$1; shift;;
	-l | --list )
		list="true"; shift;;
	* | -h | --help)
		echo "$usage"
		exit 0
		;;
	esac
done

if [ -z $client ] || [ -z $list ] && [ -z $bNumber ]
then
	echo "$usage"
	exit 0
fi

TopDir=`grep $Conf{TopDir} /etc/backuppc/config.pl | awk '{print $3}'`
len=${#TopDir}-3
TopDir=${TopDir:1:len}
ls $TopDir/pc > /dev/null 2>&1
while [ $? != 0 ]
do
	read -p "examined $TopDir seems wrong. What is TopDir ? " TopDir
	ls $TopDir/pc > /dev/null 2>&1
done

ls $TopDir/pc/$client > /dev/null 2>&1
if [ $? != 0 ]
then
	echo "$client have no backups"
	exit 1
fi

if [ ! -z $list ]
then
	while read CLine
	do
		BackupNumber=`echo $CLine | awk '{print $1}'`
		BackupType=`echo $CLine | awk '{print $2}'`
		echo "BackupNumber $BackupNumber - $BackupType-Backup"
	done < $TopDir/pc/$client/backups
	exit 0
fi

if [ ! -z $bNumber ]
then
	if [ -e $TopDir/pc/$client/$bNumber ]
	then
		rm -f $TopDir/pc/$client/backups.new > /dev/null 2>&1
		while read CLine
		do
			BackupNumber=`echo $CLine | awk '{print $1}'`
			if [ $BackupNumber != $bNumber ]
			then
				echo "$CLine" >> $TopDir/pc/$client/backups.new
			fi
		done < $TopDir/pc/$client/backups
		if [ -e $TopDir/pc/$client/backups.new ]
		then
			rm -fr $TopDir/pc/$client/$bNumber
			if [ $? == 0 ] && 
			then
				mv $TopDir/pc/$client/backups.new $TopDir/pc/$client/backups
			fi
		fi
	else
		echo "Backup Number $bNumber do not exist for client $client"
	fi
fi
exit $?