+$(cat $ERRORFILE)
+
+Exiting." 0 0
+ rm -f "$TMPFILE" "$ERRORFILE"
+ exit 1
+fi
+
+}
+
+prompt_for_swraid()
+{
+if dialog --stdout --title "$PN" \
+ --defaultno --yesno "Do you want to configure Software RAID?
+
+Please notice that only RAID level 1 is supported by ${PN} currently. Configuration will take place using mdadm." 0 0 ; then
+ config_swraid_setup
+fi
+}
+# }}}
+
+# user should recheck his configuration {{{
+# support full automatic installation:
+checkforrun() {
+ dialog --timeout 10 --title "$PN" \
+ --yesno "Do you want to stop at this stage?
+
+Notice: you are running ${PN} in non-interactive mode.
+${PN} will install Debian ${RELEASE} on ${TARGET}.
+Last chance to quit. Timeout of 10 seconds running....
+
+Do you want to stop now?" 0 0 2>/dev/null
+}
+
+# make sure the user is aware of the used configuration {{{
+checkconfiguration()
+{
+if [ -n "$AUTOINSTALL" ] ; then
+ if checkforrun ; then
+ eerror "Exiting as requested" ; eend 0
+ exit 1
+ fi
+elif [ -n "$INTERACTIVE" ] ; then
+
+ INFOTEXT="Please recheck configuration before execution:
+ "
+ [ -n "$TARGET" ] && INFOTEXT="$INFOTEXT
+ Target: $TARGET"
+ [ -n "$GRUB" ] && INFOTEXT="$INFOTEXT
+ Install grub: $GRUB"
+ [ -n "$RELEASE" ] && INFOTEXT="$INFOTEXT
+ Using release: $RELEASE"
+ [ -n "$HOSTNAME" ] && INFOTEXT="$INFOTEXT
+ Using hostname $HOSTNAME"
+ [ -n "$MIRROR" ] && INFOTEXT="$INFOTEXT
+ Using mirror: $MIRROR"
+ [ -n "$ISO" ] && INFOTEXT="$INFOTEXT
+ Using ISO: $ISO"
+
+ INFOTEXT="$INFOTEXT
+
+Is this ok for you? Notice: selecting 'No' will exit ${PN}."
+
+ dialog --title "$PN" --no-collapse \
+ --yesno "$INFOTEXT" 0 0
+
+else # if not running automatic installation display configuration and prompt for execution:
+ einfo "$PN - Please recheck configuration before execution:"
+ echo
+ echo " Target: $TARGET"
+
+ # do not display if MNTPOINT is the default one
+ case "$MNTPOINT" in /mnt/debootstrap*) ;; *) echo " Mount point: $MNTPOINT" ;; esac
+
+ [ -n "$GRUB" ] && echo " Install grub: $GRUB" || echo " Install grub: no"
+ [ -n "$RELEASE" ] && echo " Using release: $RELEASE"
+ [ -n "$MIRROR" ] && echo " Using mirror: $MIRROR"
+ [ -n "$HOSTNAME" ] && echo " Using hostname: $HOSTNAME"
+ [ -n "$ISO" ] && echo " Using ISO: $ISO"
+
+ echo " Important! Continuing will delete all data from ${TARGET}!"
+
+ echo
+ einfon "Is this ok for you? [y/N] "
+ read a
+ if ! [ "$a" = 'y' -o "$a" = 'Y' ] ; then
+ eerror "Exiting as requested." ; eend 1
+ exit 1
+ fi
+fi
+}
+# }}}
+
+# interactive mode {{{
+interactive_mode()
+{
+ welcome_dialog
+
+ prompt_for_swraid
+
+ prompt_for_target
+
+ prompt_for_bootmanager
+
+ prompt_for_release
+
+ prompt_for_hostname
+
+ prompt_for_password
+
+ prompt_for_mirror
+}
+
+# run interactive mode if we didn't get the according configuration yet
+if [ -z "$TARGET" -o -n "$INTERACTIVE" ] ; then
+ # only target might be unset, so make sure the INTERACTIVE flag is set as well
+ INTERACTIVE=1
+ interactive_mode
+fi
+# }}}
+
+checkconfiguration
+
+# finally make sure at least $TARGET is set [the partition for the new system] {{{
+if [ -n "$TARGET" ] ; then
+ SHORT_TARGET="${TARGET##*/}"
+else
+ eerror "Please adjust $CONFFILES/config or..."
+ eerror "... use the interactive version for configuration before running ${0}" ; eend 1
+ exit 1
+fi
+# }}}
+
+# stages setup {{{
+if [ -z "$STAGES" ] ; then
+ STAGES="/var/cache/grml-debootstrap/stages_${SHORT_TARGET}"
+ [ -d "$STAGES" ] || mkdir -p "$STAGES"
+fi
+
+if [ -r "$STAGES"/grml-debootstrap ] ; then
+ if grep -q done $STAGES/grml-debootstrap ; then
+ eerror "Error: grml-debootstrap has been executed already, won't continue therefore."
+ eerror "If you want to re-execute grml-debootstrap just manually remove ${STAGES}" ; eend 1
+ fi
+fi
+# }}}