#!/bin/bash
set -e
set -x

source $(dirname $0)/version
cd $(dirname $0)/..

ARTIFACTS=$(pwd)/dist/artifacts
CD=${BUILD}/cd
ISO=${ARTIFACTS}/$(echo ${DISTRIB_ID} | tr '[:upper:]' '[:lower:]').iso
CHECKSUM=iso-checksums.txt

mkdir -p ${CD}/boot/isolinux
mkdir -p ${CD}/rancheros

if [ ! -f ${ARTIFACTS}/vmlinuz-${KERNEL_VERSION} ] || [ ! -f ${ARTIFACTS}/${INITRD} ]; then
    echo "Skipping package-iso due to ARM build: ${ARTIFACTS}/vmlinuz-${KERNEL_VERSION}  or ${ARTIFACTS}/${INITRD} not found"
    exit 0
fi

cp ${ARTIFACTS}/${INITRD}                     ${CD}/boot

# TODO: these move to os-kernel
pwd
ls dist/artifacts/vmlinuz-${KERNEL_VERSION}
cp ${ARTIFACTS}/vmlinuz-${KERNEL_VERSION}     ${CD}/boot/
#TODO cp ${ARTIFACTS}/linuxmods-${KERNEL_VERSION}   ${CD}/boot/

# cfg files creation moved to package-installer
DIST=$(pwd)/dist
cp -r ${DIST}/boot/* ${CD}/boot/

cp /usr/lib/ISOLINUX/isolinux.bin             ${CD}/boot/isolinux/
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 ${CD}/boot/isolinux/
# add the installer image to the iso for non-network / dev/test
cp ${ARTIFACTS}/installer.tar                 ${CD}/rancheros/
cp ${ARTIFACTS}/Dockerfile.amd64              ${CD}/rancheros/
gzip ${CD}/rancheros/installer.tar
cd ${CD} && xorriso \
    -as mkisofs \
    -l -J -R -V "${DISTRIB_ID}" \
    -no-emul-boot -boot-load-size 4 -boot-info-table \
    -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
    -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
    -o $ISO ${CD}

cd $(dirname $ISO)
rm -f $CHECKSUM
for algo in sha256 md5; do
    echo "$algo: $(${algo}sum $(basename $ISO))" >> $CHECKSUM
done
