#! /bin/sh

#ifndef _BLURB_
#define _BLURB_
#/*
#
#            Coda: an Experimental Distributed File System
#                             Release 3.1
#
#          Copyright (c) 1987-1995 Carnegie Mellon University
#                         All Rights Reserved
#
#Permission  to  use, copy, modify and distribute this software and its
#documentation is hereby granted,  provided  that  both  the  copyright
#notice  and  this  permission  notice  appear  in  all  copies  of the
#software, derivative works or  modified  versions,  and  any  portions
#thereof, and that both notices appear in supporting documentation, and
#that credit is given to Carnegie Mellon University  in  all  documents
#and publicity pertaining to direct or indirect use of this code or its
#derivatives.
#
#CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS  KNOWN  TO  HAVE  BUGS,
#SOME  OF  WHICH MAY HAVE SERIOUS CONSEQUENCES.  CARNEGIE MELLON ALLOWS
#FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION.   CARNEGIE  MELLON
#DISCLAIMS  ANY  LIABILITY  OF  ANY  KIND  FOR  ANY  DAMAGES WHATSOEVER
#RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE  OR  OF
#ANY DERIVATIVE WORK.
#
#Carnegie  Mellon  encourages  users  of  this  software  to return any
#improvements or extensions that  they  make,  and  to  grant  Carnegie
#Mellon the rights to redistribute these changes without encumbrance.
#*/
#
#static char *rcsid = "$Header: purgevol_rep,v 3.2.1.1 95/10/11 10:18:39 raiff Exp $";
#endif /*_BLURB_*/


# Check that the imput parameters are correct
if [ $# != 1 ]
then
	echo "purgevol_rep volumename"
	exit
fi

if [ `cat /.hostname` != `cat /.scm` ]
then
        echo "This must be run from the scm ("`cat /.scm`")"
        exit
fi

# Look up the replicated volume name in /vice/vol/VRList to determine the
# VolIDs of the replicated copies.
REPVOLNAME=$1
REPS=`awk '$1 ~ /^'$REPVOLNAME'$/ {for (i=4; i< $3 + 4; i++) printf "%s ", $i}' /vice/vol/VRList`
REPVOLID=`awk '$1 ~ /^'$REPVOLNAME'$/ {print $2}' /vice/vol/VRList`

# Check to see if the volume actually exists 

if [ -z "$REPS" ]
then
	echo "Volume" $REPVOLNAME "doesn't exist!"
	exit
fi

# Remove the individual copies

for i in $REPS 
do 
	echo "Deleting volume " $i ;
	awk '$2 ~ /^'$i'$/ { print | "/vice/bin/volutil -h "$3" purge " $2" " $1}' /vice/vol/AllVolumes
done

#
# Delete the entry for the volume from the VRList

awk ' $1 !~ /^'$REPVOLNAME'$/ { print } ' /vice/vol/VRList >/vice/vol/VRList.tmp
mv /vice/vol/VRList.tmp /vice/vol/VRList

#
# Delete the entry from the backup list.

awk ' $1 !~ /^'$REPVOLID'$/ { print } ' /vice/db/dumplist >/vice/db/dumplist.tmp
mv /vice/db/dumplist.tmp /vice/db/dumplist

# Make sure that the vldb and vrdb are updated.

/vice/bin/volutil makevrdb /vice/vol/VRList
/vice/bin/bldvldb.sh

