As successfully uploaded to Extras-devel from my N900
[easy-deb-chroot] / fremantle / easy-chroot / .py2deb_build_folder / easy-chroot / src / sbin / qumount
diff --git a/fremantle/easy-chroot/.py2deb_build_folder/easy-chroot/src/sbin/qumount b/fremantle/easy-chroot/.py2deb_build_folder/easy-chroot/src/sbin/qumount
new file mode 100755 (executable)
index 0000000..03701a0
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/sh
+#Unmount a mounted MNTPT.
+# By Alan M Bruce (qole)
+#
+# GPL licensed; keep code free!
+
+if [ "`whoami`" != "root" ] ; then
+  echo "please run me as root!"
+  exit 9
+fi
+
+#Try to get the MNTPT location from the first parameter
+MNTPT=$1
+
+#Try to get the MNTPT location from the config file... 
+if [ "x$MNTPT" = x ] ; then
+  #Pull in the config, if possible...
+  [ -f /home/user/.chroot ] && . /home/user/.chroot
+  MNTPT=$CHROOT
+  #Still not set? FAIL
+  if [ "x$MNTPT" != x ] ; then
+    echo "No mountpoint to unmount!" >/dev/stderr
+    exit 8
+  fi
+fi
+
+
+TEST1=`mount | grep " $MNTPT "`
+
+if [ "x$TEST1" != "x" ] ; then
+  echo "..Unmounting $MNTPT..." >/dev/stderr
+  umount -ld "$MNTPT"
+
+  TEST2=`mount | grep " $MNTPT "`
+
+  if [ "x$TEST2" != "x" ] ; then
+    echo "...$MNTPT didn't unmount!" >/dev/stderr
+    exit 8
+  fi
+else
+  echo "$MNTPT is not mounted; Check for trailing slashes." >/dev/stderr
+fi
+
+if [ ! "x`grep device-mapper /proc/misc`" = "x" ] ; then
+  LOOPDEV=`echo $TEST1 | cut -f1 -d' '`
+  while [ "x`echo $LOOPDEV | grep dm-`" != "x" ] ; do
+    LOOPNO=`echo $LOOPDEV | awk -F '-' '{print $NF}'`
+    echo "..Unmounting turbo loop ($LOOPNO)..." >/dev/stderr
+    dmlosetup -d /dev/loop$LOOPNO
+    if [ "$?" != 0 ] || [ "x`dmsetup status | grep loop$LOOPNO`" != "x" ] ; then
+      echo "Waiting for apps to terminate, will try again." >/dev/stderr
+      sleep 5
+      dmlosetup -d /dev/loop$LOOPNO 
+      if [ "$?" != 0 ] ; then
+        echo "Can't unmount turbo-loop! Try dmlosetup -d /dev/loop$LOOPNO manually." >/dev/stderr
+        exit 9
+      fi
+    fi
+    LOOPDEV=`mount | grep " $MNTPT " | cut -f1 -d' '`
+  done
+fi
+
+echo "successful unmount..." >/dev/stderr
+exit 0