diff --git a/cmd/pixiecore-apache2/main.go b/cmd/pixiecore-apache2/main.go index 73b2543..41a0c98 100644 --- a/cmd/pixiecore-apache2/main.go +++ b/cmd/pixiecore-apache2/main.go @@ -17,5 +17,5 @@ package main import "go.universe.tf/netboot/pixiecore/cli" func main() { - cli.CLI(nil) + cli.CLI() } diff --git a/cmd/pixiecore/main.go b/cmd/pixiecore/main.go index b4e1733..6849193 100644 --- a/cmd/pixiecore/main.go +++ b/cmd/pixiecore/main.go @@ -21,13 +21,8 @@ import ( ) func main() { - pxe := ipxe.MustAsset("undionly.kpxe") - efi32 := ipxe.MustAsset("ipxe-i386.efi") - efi64 := ipxe.MustAsset("ipxe-x86_64.efi") - - cli.CLI(map[pixiecore.Firmware][]byte{ - pixiecore.FirmwareX86PC: pxe, - pixiecore.FirmwareEFI32: efi32, - pixiecore.FirmwareEFI64: efi64, - }) + cli.Ipxe[pixiecore.FirmwareX86PC] = ipxe.MustAsset("undionly.kpxe") + cli.Ipxe[pixiecore.FirmwareEFI32] = ipxe.MustAsset("ipxe-i386.efi") + cli.Ipxe[pixiecore.FirmwareEFI64] = ipxe.MustAsset("ipxe-x86_64.efi") + cli.CLI() } diff --git a/pixiecore/cli/bootcmd.go b/pixiecore/cli/bootcmd.go index a558d1c..b8a9362 100644 --- a/pixiecore/cli/bootcmd.go +++ b/pixiecore/cli/bootcmd.go @@ -50,7 +50,7 @@ var bootCmd = &cobra.Command{ s := &pixiecore.Server{ Booter: pixiecore.StaticBooter(spec), - Ipxe: nil, // TODO + Ipxe: Ipxe, Log: func(msg string) { fmt.Println(msg) }, } fmt.Println(s.Serve()) diff --git a/pixiecore/cli/cli.go b/pixiecore/cli/cli.go index a0f2c67..9571fbf 100644 --- a/pixiecore/cli/cli.go +++ b/pixiecore/cli/cli.go @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +// Package cli implements the commandline interface for Pixiecore. package cli import ( @@ -23,10 +24,16 @@ import ( "go.universe.tf/netboot/pixiecore" ) +// Ipxe is the set of ipxe binaries for supported firmwares. +// +// Can be set externally before calling CLI(), and set/extended by +// commandline processing in CLI(). +var Ipxe = map[pixiecore.Firmware][]byte{} + // CLI runs the Pixiecore commandline. // // Takes a map of ipxe bootloader binaries for various architectures. -func CLI(ipxe map[pixiecore.Firmware][]byte) { +func CLI() { if err := rootCmd.Execute(); err != nil { fmt.Println(err) os.Exit(-1)