#!ipxe

# CentOS Stream CoreOS (SCOS)
# https://www.centos.org/cloud/
# https://github.com/coreos/coreos-installer/blob/master/README.md#installing-from-pxe

goto ${menu}

:scos
set os CentOS Stream CoreOS
set os_arch ${arch}
iseq ${os_arch} x86_64 && set os_arch x86_64 ||
iseq ${os_arch} arm64 && set os_arch aarch64 ||
isset ${install_device} || set install_device unset
isset ${ignition_url} || set ignition_url skip
menu ${os} - ${os_arch}
item --gap ${os}:
item 9.0.20250222-0 ${space} ${os} 9.0.20250222-0
item 9.0.20250411-0 ${space} ${os} 9.0.20250411-0
item 9.0.20250510-0 ${space} ${os} 9.0.20250510-0
item 10.0.20250628-0 ${space} ${os} 10.0.20250628-0
item 10.0.20251103-0 ${space} ${os} 10.0.20251103-0
item install_dev ${space} Set install device (e.g. /dev/sda): ${install_device}
item ignition_config ${space} Set ignition config url: ${ignition_url}
choose --default ${scos_version} scos_version || goto scos_exit
echo ${cls}
iseq ${scos_version} ignition_config && goto ignition_config ||
iseq ${scos_version} install_dev && goto install_dev ||
goto scos_boot ||
goto scos_exit

:scos_boot
iseq ${scos_version} 9.0.20250222-0 && set scos_major_version 9 ||
iseq ${scos_version} 9.0.20250411-0 && set scos_major_version 9 ||
iseq ${scos_version} 9.0.20250510-0 && set scos_major_version 9 ||
iseq ${scos_version} 10.0.20250628-0 && set scos_major_version 10 ||
iseq ${scos_version} 10.0.20251103-0 && set scos_major_version 10 ||
set base_url ${scos_mirror}/${scos_base_dir}/${scos_major_version}/prod/streams
set build_version ${scos_version}
imgfree
kernel ${base_url}/${build_version}/${os_arch}/scos-${build_version}-live-kernel.${os_arch} ip=dhcp rd.neednet=1 coreos.inst.install_dev=${install_device} coreos.inst.ignition_url=${ignition_url} coreos.live.rootfs_url=${base_url}/${build_version}/${os_arch}/scos-${build_version}-live-rootfs.${os_arch}.img initrd=initrd.magic initrd=initrd.magic ${cmdline}
initrd ${base_url}/${build_version}/${os_arch}/scos-${build_version}-live-initramfs.${os_arch}.img
boot
goto scos_exit

:install_dev
echo -n Selected install device will be overwritten,
echo -n please ensure you know what you are doing...
echo -n Please set desired install device:  && read install_device
clear menu
goto scos

:ignition_config
echo -n Please set Ignition Configuration URL:  && read ignition_url
clear menu
goto scos

:scos_exit
clear menu
exit 0
