#!/bin/bash # check-cdrom -- udev helper script for QiLinux # Copyright (C) 2005 Davide Madrisan # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License version 2 as published by the # Free Software Foundation. There is NO warranty; not even for MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. # # Report bugs to # NOTE : not enough info in /sys/block/, so we use /proc [ -e /proc/sys/dev/cdrom/info ] || exit 1 dev=$1 what=$2 unset vcdrom vwhat # NOTE: example of /proc/sys/dev/cdrom/info # CD-ROM information, Id: cdrom.c 3.20 2003/12/17 # drive name: hdd hdc # drive speed: 52 32 # ... # Can play audio: 1 1 # Can write CD-R: 0 1 # Can write CD-RW: 0 1 # Can read DVD: 0 1 # Can write DVD-R: 0 1 # Can write DVD-RAM: 0 0 # ... /bin/cat /proc/sys/dev/cdrom/info | { while read line; do case "$line" in drive\ name:*) set ${line##*:} vcdrom=($@) let "found_dev = 0" for cdrom in ${vcdrom[@]}; do [ "$cdrom" = "$dev" ] && { let "found_dev = 1"; break; } done [ "$found_dev" = 1 ] || exit 1 ;; *\ $what:*) set ${line##*:} for cdrom in ${vcdrom[@]}; do [ "$cdrom" = "$dev" -a "$1" = 1 ] && exit 0 shift done ;; esac done exit 1 }