summaryrefslogtreecommitdiffstats
path: root/contrib/amd/scripts/am-eject.in
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/amd/scripts/am-eject.in')
-rw-r--r--contrib/amd/scripts/am-eject.in52
1 files changed, 52 insertions, 0 deletions
diff --git a/contrib/amd/scripts/am-eject.in b/contrib/amd/scripts/am-eject.in
new file mode 100644
index 0000000..ed7e2d0
--- /dev/null
+++ b/contrib/amd/scripts/am-eject.in
@@ -0,0 +1,52 @@
+#!/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|fd"
+ 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|fd"; 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) eject;; # eject CD-ROM
+ fd) echo "Ok to remove disk";;
+esac
OpenPOWER on IntegriCloud