+# help text {{{
+usage() {
+ echo "$PN - wrapper around debootstrap for installing Debian
+
+Usage: $PN [options]
+
+Bootstrap options:
+
+ -m, --mirror <URL> Mirror which should be used for apt-get/aptitude.
+ -i, --iso <mnt> Mountpoint where a Debian ISO is mounted to, for use
+ instead of fetching packages from a mirror.
+ -r, --release <name> Release of new Debian system (default: squeeze).
+ -t, --target <target> Target partition (/dev/...) or directory where the
+ system should be installed to.
+ -p, --mntpoint <mnt> Mountpoint used for mounting the target system,
+ has no effect if -t is given and represents a directory.
+ --debopt <params> Extra parameters passed to the debootstrap command.
+ --interactive Use interactive mode (frontend).
+ --nodebootstrap Skip debootstrap, only do configuration to the target.
+ --grub <device> Target for grub installation. Usage example: /dev/sda
+ --arch <arch> Architecture to use. Currently only i386 is supported.
+ --filesystem <fs> Filesystem that should be used when target is a partition
+ or Virtual Machine (see --vmfile).
+ --insecure Do not download and check Release file signatures.
+ --force Do not prompt for user acknowledgement.
+
+Options for Virtual Machine deployment:
+
+ --vmfile Set up a Virtual Machine instead of installing to
+ a partition or directory, to be combined with --target,
+ like: --vmfile --target /mnt/sda1/qemu.img
+ --vmsize <size> Use specified size for size of VM file (default: 2G).
+ Syntax as supported by qemu-img, like: --vmsize 3G
+
+Configuration options:
+
+ -c, --config <file> Use specified configuration file, defaults to
+ /etc/debootstrap/config
+ -d, --confdir <path> Place of config files for debootstrap, defaults
+ to /etc/debootstrap
+ --packages <file> Install packages defined in specified list file.
+ --nopackages Skip installation of packages defined in
+ /etc/debootstrap/packages
+ --debconf <file> Pre-seed packages using specified pre-seed db file.
+ --keep_src_list Do not overwrite user provided apt sources.list.
+ --hostname <name> Hostname of Debian system.
+ --password <pwd> Use specified password as password for user root.
+ --bootappend <line> Add specified appendline to kernel whilst booting.
+ --chroot-scripts <d> Execute chroot scripts from specified directory.
+ --pre-scripts <dir> Execute scripts from specified directory (before chroot-scripts).
+ --scripts <dir> Execute scripts from specified directory (after chroot-scripts).
+
+Other options:
+
+ -v, --verbose Increase verbosity.
+ -h, --help Print this usage information and exit.
+ -V, --version Show summary of options and exit.
+
+Usage examples can be found in the grml-debootstrap manpage.
+Send bugreports to the grml-team: bugs (at) grml.org || http://grml.org/bugs/
+"
+}
+
+if [ "$1" = '-h' ] || [ "$1" = '-help' ] || [ "$1" = "--help" ] ; then
+ usage
+ echo 'Please notice that this script requires root permissions!'
+ exit 0
+fi
+# }}}
+
+# early helper functions {{{
+GOOD='\e[32;01m'
+WARN='\e[33;01m'
+BAD='\e[31;01m'
+NORMAL='\e[0m'
+HILITE='\e[36;01m'
+BRACKET='\e[34;01m'
+
+einfo() {
+ einfon "$1\n"
+ return 0
+}
+
+einfon() {
+ [ "${RC_ENDCOL}" != "yes" ] && [ "${LAST_E_CMD}" = "ebegin" ] && echo
+ printf " ${GOOD}*${NORMAL} $*"
+ LAST_E_CMD=einfon
+ return 0
+}
+
+eerror() {
+ [ "${RC_ENDCOL}" != "yes" ] && [ "${LAST_E_CMD}" = "ebegin" ] && echo
+ printf " ${BAD}*${NORMAL} $*\n"
+ LAST_E_CMD=eerror
+ return 0
+}
+
+eend() {
+ local retval="${1:-0}"
+ shift
+ if [ $retval -gt 0 ]; then
+ printf " ${BAD}-> Failed (rc=${retval})${NORMAL}\n"
+ fi
+ return $retval
+}