INNER CODE UNIT · Go
prepareSourceImg
container2wasm/container2wasm · cmd/c2w/main.go:319
func prepareSourceImg(builderPath, imgName, tmpdir, targetarch string) error {
log.Printf("saving %q to %q\n", imgName, tmpdir)
// TODO: check architecture
needsPull := false
if idata, err := exec.Command(builderPath, "image", "inspect", imgName).Output(); err != nil {
needsPull = true
} else if targetarch != "" {
p, err := platforms.Parse(targetarch)
if err != nil {
return fmt.Errorf("failed to parse arch %q", targetarch)
}
mc := platforms.Only(p)
inspectData := make([]map[string]interface{}, 1)
if err := json.Unmarshal(idata, &inspectData); err != nil {
return err
}
imageArch := inspectData[0]["Architecture"].(string)
imagePlatform, err := platforms.Parse(imageArch)