#! /bin/bash set -u set -e . build_helpers/progressif.ly.io.sh if [ -z "$1" ] || [ ! -f "$1" ]; then track err_argpath "Argument must be the path to a binary to splice into a bootsector" trackend err_argpath f exit 1 fi INSIZE=$(stat -c%s $1) if [ $INSIZE -ge 510 ]; then track err_bootsectsize "Input file is greater than bootsector max size (510 bytes)" trackend err_bootsectsize f exit 1 fi OUTFILE="bootable.img" track bootsect_template "Creating bootsector template... " dd if=/dev/zero bs=510 count=1 of="$OUTFILE" >/dev/null 2>&1 echo -ne "\x55\xaa" >> "$OUTFILE" dd if=/dev/zero bs=512 count=255 ibs=512 seek=1 of="$OUTFILE" >/dev/null 2>&1 trackend bootsect_template t track create_bootsect "Inserting bootsector... " dd if="$1" of="$OUTFILE" conv=notrunc >/dev/null 2>&1 trackend create_bootsect t track insert_kernel "Inserting kernel... " dd if="bin/src._kernel._main.bin" of="$OUTFILE" conv=notrunc ibs=512 seek=1 >/dev/null 2>&1 trackend insert_kernel t track splice_done "Done. File at: '$OUTFILE'" trackend splice_done t