3 if [ "$1"x = ""x ] || [ "$2"x = ""x ] ; then
4 echo "Needs two arguments: iso filename and input device name"
11 # If we're using a bare name then easy
12 if [ "$ISO"x = "$1"x ]; then
18 if [ ! -e ${DIR}/README ] ; then
19 echo "No README file at ${DIR}/README; FAIL"
23 NUM_LINES=$(grep $ISO ${DIR}/README | sort -u | wc -l)
24 if [ $NUM_LINES != 1 ] ; then
25 echo "$ISO not found, or not unique: found $NUM_LINES times in README"
29 LINE=$(grep $ISO ${DIR}/README | sort -u)
34 sg_start --loej $DRIVE
36 if [ $error -ne 0 ]; then
37 echo "Failed to load media into drive, error $error"
46 while [ $SECS -gt 0 ]; do
47 echo -n "Waiting for $DRIVE to become ready: $SECS \r"
48 sg_turs $DRIVE > /dev/null
56 sg_turs $DRIVE > /dev/null
58 if [ $error -ne 0 ]; then
59 echo "Drive failed to come ready, error $error"
61 sg_start --stop --loej $DRIVE
64 echo "$DRIVE came ready with $SECS seconds to spare "
67 FILENAME=$(echo $LINE | awk -F: '{print $1}')
68 BYTES=$(echo $LINE | awk -F: '{print $2}')
69 BLOCKS=$(echo $LINE | awk -F: '{print $3}')
70 MD5=$(echo $LINE | awk -F: '{print $4}')
72 if [ -e $INPUT ]; then
74 INPUT=$(basename $INPUT)
75 elif [ -e /dev/$INPUT ]; then
76 READ_INPUT=/dev/$INPUT
78 echo "Input $INPUT (and /dev/$INPUT) doesn't look valid. FAIL."
84 load_drive $READ_INPUT
85 wait_drive_ready $READ_INPUT 20
89 OUT_MD5=$(dd if=$READ_INPUT bs=2048 count=$BLOCKS status=none | \
94 echo "$FILENAME on $INPUT:"
95 echo " MD5 expected: $MD5"
96 echo " MD5 read back: $OUT_MD5"
97 if [ $OUT_MD5 = $MD5 ] ; then
104 /dev/*) eject $INPUT;;