diff --git a/cmd/dkl-local-server/bootv2.go b/cmd/dkl-local-server/bootv2.go index 5b34ff7..bd7c079 100644 --- a/cmd/dkl-local-server/bootv2.go +++ b/cmd/dkl-local-server/bootv2.go @@ -331,19 +331,6 @@ func buildLayersCombo(host *localconfig.Host, cfg *config.Config, signer crypto. cmdOut := new(bytes.Buffer) - run := func(prog string, arg ...string) bool { - cmdOut.Reset() - - cmd := exec.Command(prog, arg...) - cmd.Stdout = cmdOut // os.Stdout - cmd.Stderr = os.Stderr - if e := cmd.Run(); e != nil { - err = fmt.Errorf("%s %q failed: %w", cmd.Path, cmd.Args, e) - return false - } - return true - } - for i, layer := range layers { if layer == "modules" { continue // modules are in the initrd with boot v2 @@ -374,20 +361,20 @@ func buildLayersCombo(host *localconfig.Host, cfg *config.Config, signer crypto. mode = "--create" } - if !run("tar", mode, "-p", "-f", tmpTar, "-C", mountPoint, ".") { + if err = runCmd(cmdOut, "tar", mode, "-p", "-f", tmpTar, "-C", mountPoint, "."); err != nil { return } } fsOut := filepath.Join(workdir, "output.fs") - if !run("mkfs.erofs", "-z", "lzma", "-C131072", "-Efragments,ztailpacking", - "-T0", "--all-time", "--ignore-mtime", "--tar=f", fsOut, tmpTar) { + if err = runCmd(cmdOut, "mkfs.erofs", "-z", "lzma", "-C131072", "-Efragments,ztailpacking", + "-T0", "--all-time", "--ignore-mtime", "--tar=f", fsOut, tmpTar); err != nil { return } hashOut := filepath.Join(workdir, "output.hash") - if !run("veritysetup", "format", fsOut, hashOut) { + if err = runCmd(cmdOut, "veritysetup", "format", fsOut, hashOut); err != nil { return } @@ -490,3 +477,15 @@ func fetchHostLayer(host *localconfig.Host, layer string) (path string, err erro return distFetch("layers", layer, layerVersion) } + +func runCmd(cmdOut *bytes.Buffer, prog string, arg ...string) error { + cmdOut.Reset() + + cmd := exec.Command(prog, arg...) + cmd.Stdout = cmdOut + cmd.Stderr = os.Stderr + if e := cmd.Run(); e != nil { + return fmt.Errorf("%s %q failed: %w", cmd.Path, cmd.Args, e) + } + return nil +}