-#! /bin/sh
+#! @SHELL@
#
# Amanda, The Advanced Maryland Automatic Network Disk Archiver
# Copyright (c) 1991-1999 University of Maryland at College Park
expr "$1" : '[0-9][0-9]*$' > /dev/null 2>&1
}
+# Need rwx access to the virtual tape itself.
+if ! test -d $SLOTDIR; then
+ echo "Virtual-tape directory $SLOTDIR does not exist." 1>&2
+ exit 2
+fi
+if ! test -w $SLOTDIR; then
+ echo "Virtual-tape directory $SLOTDIR is not writable." 1>&2
+ exit 2
+fi
+
+
# need rwx access to directory of changer file
CHANGERFILE=`amgetconf$SUF changerfile`
CFDir=`dirname ${CHANGERFILE}`
[ -d ${CFDir} -a -r ${CFDir} -a -w ${CFDir} -a -x ${CFDir} ] ||
- { echo "$MYNAME: need 'rwx' access to '$CFDir'" ; exit 2 ; }
+ { echo "$MYNAME: need 'rwx' access to '$CFDir'" 1>&2 ; exit 2 ; }
# check or create changer metadata files
ACCESSFILE=$CHANGERFILE-access
[ -f $ACCESSFILE -a -r $ACCESSFILE -a -w $ACCESSFILE ] ||
echo 0 > $ACCESSFILE ||
- { echo "$MYNAME: could not access or create '$ACCESSFILE'" ; exit 2 ; }
+ { echo "$MYNAME: could not access or create '$ACCESSFILE'" 1>&2 ; exit 2 ; }
CLEANFILE=$CHANGERFILE-clean
[ -f $CLEANFILE -a -r $CLEANFILE -a -w $CLEANFILE ] ||
echo 0 > $CLEANFILE ||
- { echo "$MYNAME: could not access or create '$CLEANFILE'" ; exit 2 ; }
+ { echo "$MYNAME: could not access or create '$CLEANFILE'" 1>&2 ; exit 2 ; }
SLOTFILE=$CHANGERFILE-slot
[ -f $SLOTFILE -a -r $SLOTFILE -a -w $SLOTFILE ] ||
echo 0 > $SLOTFILE ||
- { echo "$MYNAME: could not access or create '$SLOTFILE'" ; exit 2 ; }
+ { echo "$MYNAME: could not access or create '$SLOTFILE'" 1>&2 ; exit 2 ; }
# read and check metadata
ACCESSCOUNT=`cat $ACCESSFILE`
LASTSLOT=`amgetconf$SUF tapecycle`
CURSLOT=0
CLEANSLOT=$LASTSLOT
+NSLOT=`expr $LASTSLOT - $FIRSTSLOT + 1`
load() {
WHICHSLOT=$1;
if [ $WHICHSLOT -ge $FIRSTSLOT -a $WHICHSLOT -le $LASTSLOT ]; then
NEWSLOT=$WHICHSLOT
else
- echo "0 illegal request"
+ echo "$WHICHSLOT illegal slot"
exit 1
fi
elif [ $WHICHSLOT = "clean" ]; then
NEWSLOT=$CLEANSLOT
else
- echo "0 illegal request"
+ echo "$WHICHSLOT illegal request"
exit 1
fi
if [ $NEWSLOT = $CURSLOT ]; then
info() {
readstatus
- echo "$CURSLOT $LASTSLOT $FIRSTSLOT"
+ echo "$CURSLOT $NSLOT 1"
exit 0
}