+ fi
+}
+
+#
+# The purpose of this function to wait a maximum
+# time for the drive. It will
+# return as soon as the drive is ready, or after
+# waiting a maximum of 300 seconds.
+# 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 2>&1 | grep "${ready}" >/dev/null 2>&1; then
+ break
+ fi
+ debug "Device $1 - not ready, retrying..."
+ sleep 1
+ i=`expr $i + 1`
+ done
+}
+
+# check parameter count on commandline
+#
+check_parm_count() {
+ pCount=$1
+ pCountNeed=$2
+ if test $pCount -lt $pCountNeed; then
+ echo "usage: mtx-changer ctl-device command [slot archive-device drive-index]"
+ echo " Insufficient number of arguments given."
+ if test $pCount -lt 2; then
+ echo " Mimimum usage is first two arguments ..."
+ else
+ echo " Command expected $pCountNeed arguments"
+ fi
+ exit 1
+ fi
+}
+
+# Check for special cases where only 2 arguments are needed,
+# all others are a minimum of 5
+#
+case $2 in
+ list)
+ check_parm_count $# 2
+ ;;
+ slots)
+ check_parm_count $# 2
+ ;;
+ *)
+ check_parm_count $# 5
+ ;;