xref: /aosp_15_r20/external/sg3_utils/scripts/scsi_ready (revision 44704f698541f6367e81f991ef8bb54ccbf3fc18)
1*44704f69SBart Van Assche#!/bin/bash
2*44704f69SBart Van Assche
3*44704f69SBart Van Assche################################################
4*44704f69SBart Van Assche#
5*44704f69SBart Van Assche#  Send a TEST UNIT READY SCSI command to each given device.
6*44704f69SBart Van Assche#
7*44704f69SBart Van Assche#  This script assumes the sg3_utils package is installed and uses
8*44704f69SBart Van Assche#  the sg_turs utility..
9*44704f69SBart Van Assche#
10*44704f69SBart Van Assche###############################################
11*44704f69SBart Van Assche
12*44704f69SBart Van Asscheverbose=""
13*44704f69SBart Van Asschebrief=""
14*44704f69SBart Van Assche
15*44704f69SBart Van Asscheusage()
16*44704f69SBart Van Assche{
17*44704f69SBart Van Assche  echo "Usage: scsi_ready [-b] [-h] [-v] <device>+"
18*44704f69SBart Van Assche  echo "  where:"
19*44704f69SBart Van Assche  echo "    -b, --brief          print 'ready' or 'device not ready' only"
20*44704f69SBart Van Assche  echo "    -h, --help           print usage message"
21*44704f69SBart Van Assche  echo "    -v, --verbose        more verbose output"
22*44704f69SBart Van Assche  echo ""
23*44704f69SBart Van Assche  echo "Send SCSI TEST UNIT READY to each <device>"
24*44704f69SBart Van Assche}
25*44704f69SBart Van Assche
26*44704f69SBart Van Asscheopt="$1"
27*44704f69SBart Van Asschewhile test ! -z "$opt" -a -z "${opt##-*}"; do
28*44704f69SBart Van Assche  opt=${opt#-}
29*44704f69SBart Van Assche  case "$opt" in
30*44704f69SBart Van Assche    b|-brief) brief="1" ;;
31*44704f69SBart Van Assche    h|-help) usage ; exit 0 ;;
32*44704f69SBart Van Assche    v|-verbose) verbose="-v" ;;
33*44704f69SBart Van Assche    vv) verbose="-vv" ;;
34*44704f69SBart Van Assche    vvv) verbose="-vvv" ;;
35*44704f69SBart Van Assche    *) echo "Unknown option: -$opt " ; exit 1 ;;
36*44704f69SBart Van Assche  esac
37*44704f69SBart Van Assche  shift
38*44704f69SBart Van Assche  opt="$1"
39*44704f69SBart Van Asschedone
40*44704f69SBart Van Assche
41*44704f69SBart Van Asscheif [ $# -lt 1 ]
42*44704f69SBart Van Assche  then
43*44704f69SBart Van Assche    usage
44*44704f69SBart Van Assche    exit 1
45*44704f69SBart Van Asschefi
46*44704f69SBart Van Assche
47*44704f69SBart Van Asschefor i
48*44704f69SBart Van Asschedo
49*44704f69SBart Van Assche	if [ ! $brief ] ; then
50*44704f69SBart Van Assche		echo "sg_turs $verbose $i"
51*44704f69SBart Van Assche	fi
52*44704f69SBart Van Assche	echo -n "    "
53*44704f69SBart Van Assche        if sg_turs $verbose $i ; then
54*44704f69SBart Van Assche		echo "ready"
55*44704f69SBart Van Assche	fi
56*44704f69SBart Van Asschedone
57