small cleanup
This commit is contained in:
@@ -331,19 +331,6 @@ func buildLayersCombo(host *localconfig.Host, cfg *config.Config, signer crypto.
|
|||||||
|
|
||||||
cmdOut := new(bytes.Buffer)
|
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 {
|
for i, layer := range layers {
|
||||||
if layer == "modules" {
|
if layer == "modules" {
|
||||||
continue // modules are in the initrd with boot v2
|
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"
|
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
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fsOut := filepath.Join(workdir, "output.fs")
|
fsOut := filepath.Join(workdir, "output.fs")
|
||||||
if !run("mkfs.erofs", "-z", "lzma", "-C131072", "-Efragments,ztailpacking",
|
if err = runCmd(cmdOut, "mkfs.erofs", "-z", "lzma", "-C131072", "-Efragments,ztailpacking",
|
||||||
"-T0", "--all-time", "--ignore-mtime", "--tar=f", fsOut, tmpTar) {
|
"-T0", "--all-time", "--ignore-mtime", "--tar=f", fsOut, tmpTar); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
hashOut := filepath.Join(workdir, "output.hash")
|
hashOut := filepath.Join(workdir, "output.hash")
|
||||||
|
|
||||||
if !run("veritysetup", "format", fsOut, hashOut) {
|
if err = runCmd(cmdOut, "veritysetup", "format", fsOut, hashOut); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -490,3 +477,15 @@ func fetchHostLayer(host *localconfig.Host, layer string) (path string, err erro
|
|||||||
|
|
||||||
return distFetch("layers", layer, layerVersion)
|
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
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user