package pxe import ( "fmt" "path/filepath" "strings" "provisioning/internal/model" ) func BuildIPXEScript(publicURL string, img *model.Image, mac string) string { base := fmt.Sprintf("%s/images/boot", publicURL) kernelURL := fmt.Sprintf("%s/%s", base, img.KernelPath) initrdURL := fmt.Sprintf("%s/%s", base, img.InitrdPath) isoURL := fmt.Sprintf("%s/%s", base, img.ISOPath) overlayURL := fmt.Sprintf("%s/%s/pxe-overlay.img", base, strings.Split(filepath.ToSlash(img.KernelPath), "/")[0]) answerURL := fmt.Sprintf("%s/api/boot/auto-answer", publicURL) return fmt.Sprintf(`#!ipxe echo Provisioning: booting %s on ${mac} kernel %s ro ramdisk_size=16777216 rw quiet splash=silent proxmox-start-auto-installer proxmox-auto-installer-answer-url=%s prov.iso=%s rdinit=/pxe-init initrd %s initrd %s boot `, img.Name, kernelURL, answerURL, isoURL, initrdURL, overlayURL) }