+ fi # no "$TEMPLATE_DIRECTORY"/boot/addons
+ fi # NO_ADDONS
+
+ # generate loopback.cfg config file without depending on grub's regexp module
+ # which isn't available in Debian/squeeze
+ echo "## grub2 loopback configuration" > "${BUILD_OUTPUT}"/boot/grub/loopback.cfg
+ echo "source /boot/grub/header.cfg" >> "${BUILD_OUTPUT}"/boot/grub/loopback.cfg
+ for config in "${BUILD_OUTPUT}"/boot/grub/*_default.cfg "${BUILD_OUTPUT}"/boot/grub/*_options.cfg ; do
+ [ -r "$config" ] || continue
+ echo "source ${config##$BUILD_OUTPUT}" >> "${BUILD_OUTPUT}"/boot/grub/loopback.cfg
+ done
+ if [ -z "$NO_ADDONS" ] ; then
+ echo "source /boot/grub/addons.cfg" >> "${BUILD_OUTPUT}"/boot/grub/loopback.cfg
+ fi
+ echo "source /boot/grub/footer.cfg" >> "${BUILD_OUTPUT}"/boot/grub/loopback.cfg
+
+ # copy grub files from target
+ mkdir -p "${BUILD_OUTPUT}"/boot/grub/i386-pc/
+ cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/i386-pc/
+ cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.o "${BUILD_OUTPUT}"/boot/grub/i386-pc/
+ cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.lst "${BUILD_OUTPUT}"/boot/grub/i386-pc/
+ cp -a "${CHROOT_OUTPUT}"/usr/share/grub/ascii.pf2 "${BUILD_OUTPUT}"/boot/grub/
+ cp -a "${CHROOT_OUTPUT}"/boot/grub/core.img "${BUILD_OUTPUT}"/boot/grub/
+ cp -a "${CHROOT_OUTPUT}"/boot/grub/grub.img "${BUILD_OUTPUT}"/boot/grub/
+
+ # copy modules for UEFI grub
+ mkdir -p "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/
+ cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/x86_64-efi/*.{mod,lst} "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/
+
+ if ! [ -d "${TEMPLATE_DIRECTORY}"/GRML ] ; then
+ log "Error: ${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting."
+ eerror "Error: ${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting." ; eend 1
+ bailout 9
+ fi
+
+ mkdir -p "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/
+ cp -a ${TEMPLATE_DIRECTORY}/GRML/* "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/
+
+ # adjust boot splash information:
+ RELEASE_INFO="$GRML_NAME $VERSION - Release Codename $RELEASENAME"
+ RELEASE_INFO="$(cut_string 68 "$RELEASE_INFO")"
+ RELEASE_INFO="$(extend_string_end 68 "$RELEASE_INFO")"
+
+ if [ -r "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/grml-version ] ; then
+ sed -i "s/%RELEASE_INFO%/$GRML_NAME $VERSION - $RELEASENAME/" "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/grml-version
+ sed -i "s/%DATE%/$DATE/" "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/grml-version
+ fi
+
+ # make sure the squashfs filename is set accordingly:
+ SQUASHFS_NAME="$GRML_NAME.squashfs"
+
+ if [ -n "$NO_BOOTID" ] ; then
+ log 'Skipping bootid feature as requested via $NO_BOOTID.'
+ einfo 'Skipping bootid feature as requested via $NO_BOOTID.'
+ else
+ [ -n "$BOOTID" ] || BOOTID="$(echo ${GRML_NAME}${VERSION} | tr -d ',./;\- ')"
+ [ -d "$BUILD_OUTPUT"/conf ] || mkdir "$BUILD_OUTPUT"/conf
+ einfo "Generating /conf/bootid.txt with entry ${BOOTID}."
+ log "Generating /conf/bootid.txt with entry ${BOOTID}."
+ echo "$BOOTID" > "$BUILD_OUTPUT"/conf/bootid.txt
+ eend $?
+ fi
+
+ # adjust all variables in the templates with the according distribution information
+ for file in "${BUILD_OUTPUT}"/boot/isolinux/*.cfg "${BUILD_OUTPUT}"/boot/isolinux/*.msg \
+ "${BUILD_OUTPUT}"/boot/grub/* ; do
+ if [ -r "${file}" ] && [ -f "${file}" ] ; then
+ sed -i "s/%ARCH%/$ARCH/g" "${file}"
+ sed -i "s/%DATE%/$DATE/g" "${file}"
+ sed -i "s/%DISTRI_INFO%/$DISTRI_INFO/g" "${file}"
+ sed -i "s/%DISTRI_NAME%/$DISTRI_NAME/g" "${file}"
+ sed -i "s/%DISTRI_SPLASH%/$DISTRI_SPLASH/g" "${file}"
+ sed -i "s/%GRML_NAME%/$GRML_NAME/g" "${file}"
+ sed -i "s/%SQUASHFS_NAME%/$SQUASHFS_NAME/g" "${file}"
+ sed -i "s/%RELEASE_INFO%/$RELEASE_INFO/g" "${file}"
+ sed -i "s/%SHORT_NAME%/$SHORT_NAME/g" "${file}"
+ sed -i "s/%VERSION%/$VERSION/g" "${file}"
+
+ [ -n "$DEFAULT_BOOTOPTIONS" ] && sed -i "s; boot=live; boot=live $DEFAULT_BOOTOPTIONS;" "${file}"
+
+ if [ -n "$NO_BOOTID" ] ; then
+ sed -i "s/ bootid=%BOOTID%//g" "${file}" # drop bootid bootoption
+ else
+ sed -i "s/%BOOTID%/$BOOTID/g" "${file}" # adjust bootid=... argument
+ fi
+ fi
+ done