]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/scripts/mtx-changer.in
kes Begin work on new GUI console.
[bacula/bacula] / bacula / scripts / mtx-changer.in
index 41498ef89e9a3efbcf0d01a2686f9e5cda35fb39..4588ef0753e121658e19082155a6488fc60cd993 100644 (file)
@@ -6,7 +6,7 @@
 #
 #  If you set in your Device resource
 #
-#  Changer Command = "path-to-this-script/mtx-changer" %c %o %S %a %d
+#  Changer Command = "path-to-this-script/mtx-changer %c %o %S %a %d"
 #    you will have the following input to this script:
 #
 #  So Bacula will always call with all the following arguments, even though
 
 MTX=@MTX@
 
+# mt status output
+# SunOS     No Additional Sense
+# FreeBSD   Current Driver State: at rest.
+# Linux     ONLINE
+
+OS=`uname`
+case ${OS} in
+  SunOS)
+    ready="No Additional Sense"
+    ;;
+  FreeBSD)
+    ready="Current Driver State: at rest."
+    ;;
+  *)
+    stat="ONLINE"
+  ;;
+esac
+
 #
 # log whats done
 #
@@ -44,7 +62,7 @@ MTX=@MTX@
 #
 dbgfile="@working_dir@/mtx.log"
 debug() {
-    if test -e $dbgfile; then
+    if test -f $dbgfile; then
        echo "`date +\"%Y%m%d-%H:%M:%S\"` $*" >> $dbgfile
     fi
 }
@@ -54,7 +72,7 @@ debug() {
 # Create a temporary file
 #
 make_temp_file() {
-  TMPFILE=`mktemp -t mtx.XXXXXXXXXX`
+  TMPFILE=`mktemp @working_dir@/mtx.XXXXXXXXXX`
   if test x${TMPFILE} = x; then
      TMPFILE="@working_dir@/mtx.$$"
      if test -f ${TMPFILE}; then
@@ -72,11 +90,13 @@ make_temp_file() {
 # Note, this is very system dependent, so if you are
 #   not running on Linux, you will probably need to
 #   re-write it, or at least change the grep target.
+#   We've attempted to get the appropriate OS grep targets
+#   in the code at the top of this script.
 #
 wait_for_drive() {
   i=0 
   while [ $i -le 300 ]; do  # Wait max 300 seconds
-    if mt -f $1 status | grep ONLINE  >/dev/null 2>&1; then
+    if mt -f $1 status | grep ${ready} >/dev/null 2>&1; then
       break
     fi
     debug "Device $1 - not ready, retrying..."
@@ -153,7 +173,7 @@ case $cmd in
       debug "Doing mtx -f $ctl -- to list volumes"
       make_temp_file
 # Enable the following if you are using barcodes and need an inventory
-#     $(MTX) -f $ctl inventory
+#     ${MTX} -f $ctl inventory
       ${MTX} -f $ctl status >${TMPFILE}
       rtn=$?
       cat ${TMPFILE} | grep " *Storage Element [0-9]*:.*Full" | awk "{print \$3 \$4}" | sed "s/Full *\(:VolumeTag=\)*//"