#!/bin/sh
#
# __BASEDIR__ will get substituted after installation
#
# This script loops thru the available passthru and rmt drives and
# extracts some information about them, including there scsi id and adaptor
# NOTE: The output [arsing for the MC_DEFAULT and SA_DEFAULT commands 
#       are slighlty different because their output is in a slightly
#       different form. BE CAREFULL EDITING!!!

# Set the base dir and top
BASEDIR=__BASEDIR__
TOP=${BASEDIR}/SUNWlmon

# Set locals
AWK=/usr/bin/awk
CUT=/bin/cut
GREP=/usr/bin/grep
LS=/bin/ls

####
# 
# Begin Processing Tape Libraries
# 
####

#
# Build the library list
#
TAPE_LIB_LIST=""

TAPE_LIB_LIST_0_9=`${LS} /dev/passthru[0-9] 2> /dev/null`
if [ $? -eq 0 ]; then 
    TAPE_LIB_LIST="$TAPE_LIB_LIST $TAPE_LIB_LIST_0_9"
fi

TAPE_LIB_LIST_10_99=`${LS}/dev/passthru[0-9][0-9] 2> /dev/null`
if [ $? -eq 0 ]; then 
    TAPE_LIB_LIST="$TAPE_LIB_LIST $TAPE_LIB_LIST_10_99"
fi

#
# Loop thru the libraries and extract the information
#
echo " "
echo "Scanning for tape libraries ..."
for TAPE_LIB in $TAPE_LIB_LIST
do
        echo " "
        echo "Device     : $TAPE_LIB"

        # Get the inquiry string in colon format
        INQ_STRING=`${TOP}/bin/MC_DEFAULT/SCSI_inquiry -d $TAPE_LIB -F colon`

        VENDOR=`echo $INQ_STRING | ${AWK} -F":"  '{print $18}'`
        echo "Vendor     : $VENDOR"

        PRODUCT=`echo $INQ_STRING | ${AWK} -F":" '{print $19}'`
        echo "Product    : $PRODUCT"

        REV=`echo $INQ_STRING | ${AWK} -F":" '{print $20}'`
        echo "Revision   : $REV"

        ADAPTER=`${LS} -l $TAPE_LIB | ${AWK} -F"/" '{print $(NF-1)}'`
        echo "Adapter    : $ADAPTER"

        SCSI_ID=`${LS} -l $TAPE_LIB | ${AWK} -F"/" '{print $(NF)}' | ${CUT} -c4 -`
        echo "Scsi id    : $SCSI_ID"
done

####
# 
# Begin Processing Tape Drives
# 
####

#
# Build the drive list
#
TAPE_DRIVE_LIST=""

TAPE_DRIVE_LIST_0_9=`${LS} /dev/rmt/[0-9]n 2> /dev/null`
if [ $? -eq 0 ]; then 
    TAPE_DRIVE_LIST="$TAPE_DRIVE_LIST $TAPE_DRIVE_LIST_0_9"
fi

TAPE_DRIVE_LIST_10_99=`${LS} /dev/rmt/[0-9][0-9]n 2> /dev/null`
if [ $? -eq 0 ]; then 
    TAPE_DRIVE_LIST="$TAPE_DRIVE_LIST $TAPE_DRIVE_LIST_10_99"
fi

#
# Loop thru the drives and extract the information
#
echo " "
echo "Scanning for tape drives, listing no-rewind devices ..."
echo " "
echo "IMPORTANT:"
echo "Be sure that the drive names that you choose match those"
echo "of your storage software. For example, if your backup package" 
echo "uses /dev/rmt/0cbn you should use the same."
echo "See the LibMON documentation for further description."
 
for TAPE_DRIVE in $TAPE_DRIVE_LIST
do
        echo " "
        echo "Device     : $TAPE_DRIVE"

        # Get the inquiry string in colon format
        INQ_STRING=`${TOP}/bin/SA_DEFAULT/SCSI_inquiry -d $TAPE_DRIVE -F colon`

        VENDOR=`echo $INQ_STRING | ${AWK} -F":"  '{print $18}'`
        echo "Vendor     : $VENDOR"

        PRODUCT=`echo $INQ_STRING | ${AWK} -F":" '{print $19}'`
        echo "Product    : $PRODUCT"

        # NOTE: This is slightly different because of multi-line output
        REV=`echo $INQ_STRING | ${AWK} -F":" '{print $20}' | ${AWK} -F" " '{print $1}'`
        echo "Revision   : $REV"

        ADAPTER=`${LS} -l $TAPE_DRIVE | ${AWK} -F"/" '{print $(NF-1)}'`
        echo "Adapter    : $ADAPTER"

        SCSI_ID=`${LS} -l $TAPE_DRIVE | ${AWK} -F"/" '{print $(NF)}' | ${CUT} -c4 -`
        echo "Scsi id    : $SCSI_ID"
done
