make ipxe binary source configureable

This commit is contained in:
Christian Goll
2023-01-20 15:05:42 +01:00
parent 88b740d74d
commit 32ab50f299
6 changed files with 30 additions and 19 deletions

View File

@@ -11,9 +11,8 @@ import (
"github.com/hpcng/warewulf/internal/pkg/wwlog"
)
var tftpdir string = path.Join(buildconfig.TFTPDIR(), "warewulf")
func TFTP() error {
var tftpdir string = path.Join(buildconfig.TFTPDIR(), "warewulf")
controller, err := warewulfconf.New()
if err != nil {
wwlog.Error("%s", err)
@@ -27,11 +26,15 @@ func TFTP() error {
}
fmt.Printf("Writing PXE files to: %s\n", tftpdir)
for _, f := range [4]string{"x86_64.efi", "x86_64.kpxe", "arm64.efi"} {
err = util.SafeCopyFile(path.Join(buildconfig.DATADIR(), "warewulf", "ipxe", f), path.Join(tftpdir, f))
copyCheck := make(map[string]bool)
for _, f := range controller.Tftp.IpxeBinaries {
if copyCheck[f] {
continue
}
copyCheck[f] = true
err = util.SafeCopyFile(path.Join(buildconfig.DATADIR(), f), path.Join(tftpdir, f))
if err != nil {
wwlog.Error("%s", err)
return err
wwlog.Warn("ipxe binary could not be copied, not booting may not work: %s", err)
}
}
@@ -39,7 +42,7 @@ func TFTP() error {
wwlog.Info("Warewulf does not auto start TFTP services due to disable by warewulf.conf")
os.Exit(0)
}
fmt.Printf("Enabling and restarting the TFTP services\n")
err = util.SystemdStart(controller.Tftp.SystemdName)
if err != nil {