Imported Upstream version 2.5.1
[debian/amanda] / changer-src / chg-disk.sh.in
index 72dc98b3e66f7ec5ff87a9af525d349e3dea5f6a..543d96d0a1a9a94f248e8b80d1ea5d5635f1ed9c 100644 (file)
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! @SHELL@
 #
 # Amanda, The Advanced Maryland Automatic Network Disk Archiver
 # Copyright (c) 1991-1999 University of Maryland at College Park
@@ -86,25 +86,36 @@ isinteger() {
        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`
@@ -116,6 +127,7 @@ FIRSTSLOT=1
 LASTSLOT=`amgetconf$SUF tapecycle`
 CURSLOT=0
 CLEANSLOT=$LASTSLOT
+NSLOT=`expr $LASTSLOT - $FIRSTSLOT + 1`
 
 load() {
   WHICHSLOT=$1;
@@ -165,13 +177,13 @@ loadslot() {
     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
@@ -204,7 +216,7 @@ loadslot() {
 
 info() {
   readstatus
-  echo "$CURSLOT $LASTSLOT $FIRSTSLOT"
+  echo "$CURSLOT $NSLOT 1"
   exit 0
 }