#!/bin/bash
# Filename:      ${GRML_FAI_CONFIG}/media-scripts/GRMLBASE/30-syslinux
# Purpose:       Install syslinux program files and configuration
# Authors:       grml-team (grml.org)
# Bug-Reports:   see http://grml.org/bugs/
# License:       This file is licensed under the GPL v2 or any later version.
################################################################################

set -u
set -e

# No syslinux on arm64.
if ifclass ARM64 ; then
  exit 0
fi

# FAI sets $target, but shellcheck does not know that.
target=${target:?}
# shellcheck source=/dev/null
. "$GRML_LIVE_CONFIG"

media_dir="${target}/${GRML_LIVE_MEDIADIR}"
tftpboot_dir="${target}/${GRML_LIVE_NETBOOTDIR}"/tftpboot
mkdir -p "${media_dir}"/boot/addons "${media_dir}"/boot/isolinux "${tftpboot_dir}"

grml-live-command copy-media-files media /boot/isolinux/netboot.cfg
grml-live-adjust-boot-files "${media_dir}"/boot/isolinux/netboot.cfg

if ! [ -r "${target}/usr/lib/PXELINUX/pxelinux.0" ] ; then
  echo "W: File /usr/lib/PXELINUX/pxelinux.0 not found in build chroot." >&2
  echo "W: Install syslinux[-common]/pxelinux package in chroot to get a netboot package." >&2
  exit 0
fi

cp --preserve=timestamp "${target}/usr/lib/PXELINUX/pxelinux.0" "${tftpboot_dir}/pxelinux.0"

if [ -r "${target}"/usr/lib/syslinux/modules/bios/ldlinux.c32 ] ; then
  cp --preserve=timestamp "${target}"/usr/lib/syslinux/modules/bios/ldlinux.c32 "${tftpboot_dir}"/
fi

mkdir -p "${tftpboot_dir}/pxelinux.cfg"
if [ -r "${media_dir}/boot/isolinux/netboot.cfg" ] ; then
  cp --preserve=timestamp "${media_dir}/boot/isolinux/netboot.cfg" "${tftpboot_dir}/pxelinux.cfg/default"
else
  echo "W: File /boot/isolinux/netboot.cfg not found." >&2
  echo "W: Are you using custom media-files which do not provide netboot.cfg?" >&2
fi

## END OF FILE #################################################################
# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
