-# helper functions {{{
-# we want to exit smoothly and clean:
-bailout(){
- # make sure $TARGET is not mounted when exiting grml-debootstrap
- if [ -n "$MNTPOINT" ] ; then
- if grep -q $MNTPOINT /proc/mounts ; then
- # make sure nothing is left inside chroot so we can unmount it
- [ -x "$MNTPOINT"/etc/init.d/ssh ] && "$MNTPOINT"/etc/init.d/ssh stop
- [ -x "$MNTPOINT"/etc/init.d/mdadm ] && "$MNTPOINT"/etc/init.d/mdadm stop
- # ugly, but make sure we really don't leave anything (/proc /proc is intended)
- for ARG in /sys /proc /proc ; do
- [ -x "$MNTPOINT"/bin/umount ] && chroot "$MNTPOINT" umount $ARG >/dev/null 2>&1 || true
- done
- umount "$MNTPOINT"/dev >/dev/null 2>&1 || true
-
- [ -d "$MNTPOINT/$ISODIR" ] && umount "$MNTPOINT/$ISODIR" >/dev/null 2>&1 || true
-
- if [ -n "$DIRECTORY" ] ; then
- einfo "Not unmounting $MNTPOINT as you requested me to install into a directory of your own choice." ; eend 0
- else
- einfo "Unmounting $MNTPOINT" ; umount "$MNTPOINT" ; eend $?
- fi
-
- if [ -n "$STAGES" ] ; then
- echo -n "Removing stages directory ${STAGES}: "
- rm -rf "$STAGES" && echo done
- fi
-
- # remove directory only if we used the default with process id inside the name
- if echo "$MNTPOINT" | grep -q '/mnt/debootstrap\.' ; then
- einfo "Removing directory ${MNTPOINT}" ; rmdir $MNTPOINT ; eend $?
- fi
- fi
- fi
-
- if [ -n "${ORIG_TARGET}" ] ; then
- einfo "Removing loopback mount of file ${ORIG_TARGET}."
- kpartx -d "${ORIG_TARGET}" ; eend $?
- fi
-
- [ -n "$1" ] && EXIT="$1" || EXIT="1"
- [ -n "$3" ] && einfo "Notice: just remove $STAGES/$3 to reexecute the stage"
-
- exit "$EXIT"
-}
-trap bailout HUP INT QUIT TERM
-
-# we want to execute all the functions only once, simple check for it:
-stage() {
- if [ -n "$2" ] ; then
- echo "$2" > "${STAGES}/${1}"
- return 0
- elif grep -q done "${STAGES}/${1}" 2>/dev/null ; then
- ewarn "Notice: stage $1 has been executed already, skipping execution therefore." ; eend 0
- ewarn " To reexecute it clean up the according directory inside $STAGES" ; eend 0
- return 1
- fi
-}
-# }}}
-