#!/bin/bash

set -e

MODE=${1:-cd}
QEMU_DISPLAY_ARGS=

if [ -z "$DISPLAY" ]; then
    QEMU_DISPLAY_ARGS="-display none"
fi

if [ "$MODE" = "cd" ]; then
    echo "Running bootcd.iso in QEMU (CD-ROM mode)..."
    qemu-system-i386 $QEMU_DISPLAY_ARGS -smp 4 -cdrom bootcd.iso -m 256 -serial stdio
elif [ "$MODE" = "hdd" ]; then
    echo "Running tabos.img in QEMU (HDD mode)..."
    qemu-system-x86_64 $QEMU_DISPLAY_ARGS -smp 4 -m 512 -drive file=tabos.img -serial stdio
elif [ "$MODE" = "x86_64-skeleton" ]; then
    ISO_PATH=${2:-/tmp/tabos-x86_64-skeleton.iso}
    SKELETON_DISPLAY=${QEMU_X86_64_SKELETON_DISPLAY:-none}

    echo "Creating x86_64 skeleton ISO..."
    make x86_64-skeleton-iso X86_64_SKELETON_ISO="$ISO_PATH"

    echo "Running x86_64 skeleton ISO in QEMU..."
    qemu-system-x86_64 -display "$SKELETON_DISPLAY" -m 256 -cdrom "$ISO_PATH" -serial stdio
elif [ "$MODE" = "x86_64-full" ]; then
    ISO_PATH=${2:-/tmp/tabos-x86_64-full.iso}
    FULL_DISPLAY=${QEMU_X86_64_FULL_DISPLAY:-none}

    echo "Creating x86_64 full kernel ISO..."
    make x86_64-full-iso X86_64_FULL_ISO="$ISO_PATH"

    echo "Running x86_64 full kernel ISO in QEMU..."
    qemu-system-x86_64 -display "$FULL_DISPLAY" -m 256 -cdrom "$ISO_PATH" -serial stdio
else
    echo "Unknown mode: $MODE"
    echo "Usage: $0 [cd|hdd|x86_64-skeleton|x86_64-full [iso-path]]"
    exit 1
fi
