+ if [ -r "$BUILD_OUTPUT"/GRML/grml-version ] ; then
+ sed -i "s/%RELEASE_INFO%/$GRML_NAME $VERSION - $RELEASENAME/" "$BUILD_OUTPUT"/GRML/grml-version
+ sed -i "s/%DATE%/$DATE/" "$BUILD_OUTPUT"/GRML/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}" ] ; 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
+
+ # adjust bootsplash accordingly but make sure the string has the according lenght
+ SQUASHFS_NAME="$(cut_string 20 "$SQUASHFS_NAME")"
+ SQUASHFS_NAME="$(extend_string_end 20 "$SQUASHFS_NAME")"
+ for file in f4 f5 ; do
+ if [ -r "${BUILD_OUTPUT}/boot/isolinux/${file}" ] ; then
+ sed -i "s/%SQUASHFS_NAME%/$SQUASHFS_NAME/" "${BUILD_OUTPUT}/boot/isolinux/${file}"
+ sed -i "s/%SQUASHFS_NAME%/$SQUASHFS_NAME/" "${BUILD_OUTPUT}/boot/isolinux/${file}"
+ fi
+ done
+
+ # generate addon list
+ rm "${BUILD_OUTPUT}/${ADDONS_LIST_FILE}"
+ for name in $(ls "${BUILD_OUTPUT}"/boot/isolinux/addon_*.cfg) ; do
+ include_name=$(basename "$name")
+ echo "include $include_name" >> "${BUILD_OUTPUT}/${ADDONS_LIST_FILE}"
+ done
+
+ if ! [ -r "${BUILD_OUTPUT}/boot/isolinux/${DISTRI_NAME}.cfg" ] || [ "$DISTRI_NAME" = "grml" ] ; then
+ log "including grmlmain.cfg in ${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ echo "include grmlmain.cfg" > "${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ echo "include default.cfg" > "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ echo "include menuoptions.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ echo "include grml.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ echo "include options.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ if [ ! -n "$NO_ADDONS" ] ; then
+ echo "include addons.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ fi
+ echo "include isoprompt.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ echo "include hd.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ echo "include hidden.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/grmlmain.cfg"
+ else # assume we are building a custom distribution:
+ log "File ${BUILD_OUTPUT}/boot/isolinux/${DISTRI_NAME}.cfg found, using it."
+ einfo "File ${BUILD_OUTPUT}/boot/isolinux/${DISTRI_NAME}.cfg found, using it."
+ if grep -q "^include ${DISTRI_NAME}.cfg" "${BUILD_OUTPUT}/boot/isolinux/distri.cfg" ; then
+ log "include for ${DISTRI_NAME}.cfg already present, nothing to do."
+ eindent
+ einfo "include for ${DISTRI_NAME}.cfg already present, nothing to do."
+ eoutdent
+ eend $?
+ else
+ log "including ${DISTRI_NAME}.cfg in ${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ echo "include ${DISTRI_NAME}.cfg" > "${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ [ -n "$NO_ADDONS" ] || echo "include addons.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/distri.cfg"
+ fi
+ fi
+
+ # use old style console based isolinux method only if requested:
+ if [[ "${ISOLINUX_METHOD}" == "console" ]] ; then
+ log 'Using console based isolinux method as requested via $ISOLINUX_METHOD.'
+ einfo 'Using console based isolinux method as requested via $ISOLINUX_METHOD.'
+ if grep -q '^include console.cfg' "${BUILD_OUTPUT}/boot/isolinux/distri.cfg" ; then
+ einfo "include for console.cfg already foud, nothing to do."
+ eend 0
+ else
+ log "including console.cfg in ${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ einfo "including console.cfg in ${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ echo "include console.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ eend $?
+ fi
+ else
+ log 'Using graphical boot menu.'
+ if grep -q '^include vesamenu.cfg' "${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg" ; then
+ log "include for vesamenu.cfg already foud, nothing to do."
+ else
+ log "including vesamenu.cfg in ${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ echo "include vesamenu.cfg" >> "${BUILD_OUTPUT}/boot/isolinux/isolinux.cfg"
+ fi
+ fi
+
+ # jump back to grub from bsd4grml (/boot/grub/stage2):
+ GRUB_LEGACY=stage2
+
+ if [ -e "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.6 ]; then
+ if [ -e "$BUILD_OUTPUT"/boot/grub/core.img ]; then
+ GRUB_VERSION=2
+ else
+ GRUB_VERSION=1
+ fi