freebsd-skq/contrib/amd/scripts/am-eject.in
2001-09-02 17:19:13 +00:00

54 lines
1.1 KiB
Bash

#!/bin/sh
# auto-unmount floppy/cd directory before ejecting device
# script taken from Debian Linux's amd
#
# Package: am-utils-6.0
# (Additional) author: Erez Zadok <ezk@cs.columbia.edu>
# set path
prefix=@prefix@
exec_prefix=@exec_prefix@
PATH=@sbindir@:@bindir@:/usr/ucb:/usr/bin:/bin:${PATH}
export PATH
if [ $# -ne 1 ]; then
echo "Usage: $0 cd|cdrom|fd|floppy"
exit 2
fi
# determine toplevel mount point of amd
fs=`amq | grep ' toplvl ' | cut -d' ' -f1`
if [ "$fs" = "" ]; then
echo "Cannot determine amd toplevel directory"
exit 2
fi
# append name of medium
case "$1" in
cd|fd) fs=$fs/$1;;
*) echo "Usage: $0 cd|cdrom|fd|floppy"; exit 2;;
esac
# is the medium mounted?
if amq | grep -q "^$fs" >/dev/null 2>&1; then
# if yes, try to unmount it
sync
amq -u $fs
sleep 2
if amq | grep -q "^$fs" >/dev/null 2>&1; then
# failed, bail out
echo -n "Cannot unmount $fs; in use by:"
fuser -uv -m $fs
echo ""
exit 1
fi
else
echo "$fs not mounted"
fi
case $1 in
cd|cdrom) eject cdrom || eject ;; # eject CD-ROM
fd|floppy) eject floppy || eject
echo "Ok to remove disk" ;;
esac