-#!/bin/sh
+#!/bin/bash
# Filename: /etc/debootstrap/chroot-script
# Purpose: script executed in chroot when installing Debian via grml-debootstrap
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# this script as /bin/chroot-script on your new installed system
################################################################################
+# error_handler {{{
+if [ "$REPORT_TRAP_ERR" = "yes" ] || [ "$FAIL_TRAP_ERR" = "yes" ]; then
+ set -E
+ set -o pipefail
+ trap "error_handler" ERR
+fi
+# }}}
+
. /etc/debootstrap/config || exit 1
. /etc/debootstrap/variables || exit 1
# License: This file is licensed under the GPL v2+
################################################################################
+# error_handler {{{
+[ -n "$REPORT_TRAP_ERR" ] || REPORT_TRAP_ERR='no'
+[ -n "$FAIL_TRAP_ERR" ] || FAIL_TRAP_ERR='no'
+
+error_handler() {
+ last_exit_code="$?"
+ last_bash_command="$BASH_COMMAND"
+ if [ "$REPORT_TRAP_ERR" = "yes" ]; then
+ echo "Unexpected non-zero exit code $last_exit_code in $BASH_SOURCE at line $BASH_LINENO detected!
+last bash command: $last_bash_command"
+ fi
+ if [ ! "$FAIL_TRAP_ERR" = "yes" ]; then
+ return
+ fi
+ ## Check if "bailout" function is available.
+ ## This is not the case in chroot-script.
+ if command -v bailout >/dev/null 2>&1; then
+ bailout 1
+ else
+ echo 'FAIL_TRAP_ERR is set to "yes", exit 1.'
+ exit 1
+ fi
+}
+
+if [ "$REPORT_TRAP_ERR" = "yes" ] || [ "$FAIL_TRAP_ERR" = "yes" ]; then
+ set -E
+ set -o pipefail
+ trap "error_handler" ERR
+ export -f "error_handler"
+fi
+# }}}
+
# variables {{{
PN="$(basename "$0")"
if [[ -d "$(dirname "$(which "$0")")"/.git ]]; then
mount --bind /dev "$MNTPOINT"/dev
mount --bind /dev/pts "$MNTPOINT"/dev/pts
if [ "$DEBUG" = "true" ] ; then
- chroot "$MNTPOINT" /bin/sh -x /bin/chroot-script ; RC=$?
+ chroot "$MNTPOINT" /bin/bash -x /bin/chroot-script ; RC=$?
else
chroot "$MNTPOINT" /bin/chroot-script ; RC=$?
fi