use ubuntu-board-gen to start generating images

This commit is contained in:
2023-04-12 04:55:00 +00:00
parent 6943facc81
commit fa9f06cb9a
9 changed files with 387 additions and 13 deletions
+1 -1
View File
@@ -11,5 +11,5 @@ go_library(
],
importpath = "git.wntrmute.dev/kyle/bladerunner/src/packer",
visibility = ["//visibility:public"],
deps = ["@in_gopkg_yaml_v2//:go_default_library"],
deps = ["@in_gopkg_yaml_v2//:yaml_v2"],
)
+4 -4
View File
@@ -1,8 +1,8 @@
package packer
type Board struct {
Variables interface{} `json:"variables"`
Builders []Builder `json:"builders"`
Provisioners []Provisioner `json:"provisioners"`
PostProcessors []string `json:"post-processors"`
Variables map[string]string `json:"variables"`
Builders []Builder `json:"builders"`
Provisioners []Provisioner `json:"provisioners"`
PostProcessors []string `json:"post-processors"`
}
+13 -1
View File
@@ -1,9 +1,11 @@
package packer
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"path/filepath"
"strings"
@@ -72,7 +74,7 @@ func (spec UbuntuBoardSpec) JSONPath(base string) string {
func (spec UbuntuBoardSpec) Board() Board {
board := Board{
Variables: []string{},
Variables: map[string]string{},
Builders: []Builder{
UbuntuBuilder(spec.Version, spec.Size, spec.ImageName),
},
@@ -94,11 +96,13 @@ func (spec UbuntuBoardSpec) Board() Board {
}
func LoadUbuntuSpecs(path string) (specFile UbuntuBoardSpecFile, err error) {
log.Println("loading from", specFile)
data, err := ioutil.ReadFile(path)
if err != nil {
return
}
log.Println("parsing specs")
err = yaml.Unmarshal(data, &specFile)
if err != nil {
return
@@ -124,6 +128,14 @@ func (specFile UbuntuBoardSpecFile) WriteBoards(outputDir string) error {
return err
}
buf := &bytes.Buffer{}
err = json.Indent(buf, contents, "", " ")
if err != nil {
return err
}
contents = buf.Bytes()
log.Println("writing spec to", dest)
err = ioutil.WriteFile(dest, contents, 0644)
if err != nil {
return err