Ensure that the file used for replacing the template parameters is a file.
[grml-live.git] / grml-live
index b8a14a6..923c934 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -883,7 +883,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
        if ! [ -d "${BUILD_OUTPUT}/boot/grub" ] ; then
          mkdir -p "${BUILD_OUTPUT}/boot/grub"
        fi
-       cp ${TEMPLATE_DIRECTORY}/boot/grub/* "$BUILD_OUTPUT"/boot/grub/
+       cp -a ${TEMPLATE_DIRECTORY}/boot/grub/* "$BUILD_OUTPUT"/boot/grub/
 
        # copy grub files from target
        cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/
@@ -929,7 +929,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
        # 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
+         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}"
@@ -951,6 +951,14 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
          fi
        done
 
+       for param in ARCH DATE DISTRI_INFO DISTRI_NAME DISTRI_SPLASH GRML_NAME SQUASHFS_NAME \
+           RELEASE_INFO SHORT_NAME VERSION ; do
+           for file in $(find "${BUILD_OUTPUT}" -name "*%$param%*") ; do
+               value="$(eval echo '$'"$param")"
+               mv ${file} ${file/\%${param}\%/$value}
+           done
+       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")"
@@ -1379,15 +1387,13 @@ create_netbootpackage() {
   cp "${CHROOT_OUTPUT}"/boot/initrd.img-* "$WORKING_DIR"/initrd.img
   cp "${CHROOT_OUTPUT}"/usr/lib/syslinux/pxelinux.0 "${WORKING_DIR}/pxelinux.0"
 
+  mkdir -p "${WORKING_DIR}/pxelinux.cfg"
   if [ -r "${BUILD_OUTPUT}/boot/isolinux/netboot.cfg" ] ; then
-    mkdir -p "${WORKING_DIR}/pxelinux.cfg/default"
     cp "${BUILD_OUTPUT}/boot/isolinux/netboot.cfg" "${WORKING_DIR}/pxelinux.cfg/default"
   else
     ewarn "File ${BUILD_OUTPUT}/boot/isolinux/netboot.cfg not found." ; eend 0
   fi
 
-  mkdir -p "${WORKING_DIR}/pxelinux.cfg"
-
   if tar -C "$OUTPUTDIR" -jcf "${OUTPUT_FILE}" "grml_netboot_package_${GRML_NAME}_${VERSION}" ; then
     sha1sum "${OUTPUT_FILE}" > "${OUTPUT_FILE}.sha1"
     einfo "Generated netboot package ${OUTPUT_FILE}" ; eend 0