+bailout(){
+ # make sure $TARGET is not mounted when exiting grml-debootstrap
+ if [ -n "$TARGET" ] ; then
+ if grep -q $TARGET /proc/mounts ; then
+ echo "Unmounting $TARGET"
+ umount "$TARGET"
+ fi
+ fi
+ [ -n "$1" ] && EXIT="$1" || EXIT="1"
+ exit "$EXIT"
+}
+
+stage() {
+ # error handling
+ if [ -z "$1" ] ; then
+ eerror 'Error: stage() requires at least one argument.'
+ eend 1
+ return 1
+ fi
+ if [ -z "$STAGES" ] ; then
+ eerror 'Error: $STAGES not set.'
+ eend 1
+ return 1
+ fi
+ # main function
+ if [ -f "$STAGES/$1" ] ; then
+ if grep -q done "$STAGES/$1" ; then
+ ewarn "Notice: stage $1 has been executed already, skipping execution therefore." ; eend 0
+ fi
+ else
+ echo "$2" > "$STAGES/$1"
+ fi
+}
+
+trap bailout 1 2 3 15
+
+PARTITION=''
+DIRECTORY=''
+
+case $TARGET in
+ /dev/*)
+ PARTITION=1
+ ;;
+ *)
+ # assume we are installing into a directory, don't run mkfs and grub related stuff therefore
+ DIRECTORY=1
+ MNTPOINT="$TARGET"
+ MKFS=''
+ TUNE2FS=''
+ FSCK=''
+ GRUB=''
+ GROOT=''
+ ;;
+esac
+