1#!/bin/sh
2# auto-unmount floppy/cd directory before ejecting device
3# script taken from Debian Linux's amd
4#
5# Package:		am-utils-6.x
6# (Additional) author:	Erez Zadok <ezk@cs.columbia.edu>
7
8# set path
9prefix=@prefix@
10exec_prefix=@exec_prefix@
11PATH=@sbindir@:@bindir@:/usr/ucb:/usr/bin:/bin:${PATH}
12export PATH
13
14if [ $# -ne 1 ]; then
15	echo "Usage: $0 cd|cdrom|fd|floppy"
16	exit 2
17fi
18
19# determine toplevel mount point of amd
20fs=`amq | grep ' toplvl ' | cut -d' ' -f1`
21if [ "$fs" = "" ]; then
22	echo "Cannot determine amd toplevel directory"
23	exit 2
24fi
25
26# append name of medium
27case "$1" in
28  cd|fd) fs=$fs/$1;;
29  *)	 echo "Usage: $0 cd|cdrom|fd|floppy"; exit 2;;
30esac
31
32# is the medium mounted?
33if amq | grep -q "^$fs" >/dev/null 2>&1; then
34	# if yes, try to unmount it
35	sync
36	amq -u $fs
37	sleep 2
38	if amq | grep -q "^$fs" >/dev/null 2>&1; then
39		# failed, bail out
40		echo -n "Cannot unmount $fs; in use by:"
41		fuser -uv -m $fs
42		echo ""
43		exit 1
44	fi
45else
46	echo "$fs not mounted"
47fi
48
49case $1 in
50  cd|cdrom)	eject cdrom || eject ;; # eject CD-ROM
51  fd|floppy)	eject floppy || eject
52		echo "Ok to remove disk" ;;
53esac
54