#!/bin/bash # $Id: oddb_batchgrab 30 2008-05-26 14:23:07Z winex $ prog=${0##*/} if [ -z "$1" ]; then echo "Usage: $prog DEVICE" exit 1 fi dev="$1" exitifempty=0 if [ ! -b $dev ]; then echo "$prog: '$dev' is not a block device thus even not an ODD" >&2 exit 1 fi if [ ! -w $dev ]; then echo "$prog: '$dev' is not writeable, but wodim expects this even for reading." echo "Ask your system administrator for proper setup." exit 2 fi # close tray on CTRL-C or TERM or KILL trap trap_func SIGINT SIGTERM trap_func() { echo -n "closing tray..." eject -t $dev echo exit 0 } echo "" # TODO: 20080407 winex: exit if empty tray is closed and beep by "echo -e '\a'" # when finished, but in case of remote control such as ssh,vnc it will beep be # on the client side :( while : ; do # sleep loop while tray is opened while wodim -v -V -inq dev=$dev 2>&1 | grep -q 'Mode Sense Data 00 [0-9A-Fa-f][0-9A-Fa-f] 71'; do sleep 15 exitifempty=1 done # exit tray is closed without any medium and not at the program start wodim -v -V -inq dev=$dev 2>&1 | grep -q 'medium not present' if [ $? -eq 0 ] && [ $exitifempty -ne 0 ]; then exit 0 fi oddb_mkimage $dev || echo "FAILED" >&2 eject $dev for i in 1 2 3; do echo -ne '\a' sleep 0.2 done exitifempty=1 done