in command-runner/internal/containers/finch/finch_pull.go [69:94]
func imageExistsLocally(ctx context.Context, imageName string, platform string) (bool, error) {
f, err := newFinch(finchInstallDir)
if err != nil {
return false, err
}
rout, rerr, err := f.RunWithoutStdio(ctx, "inspect", imageName)
if err != nil {
if strings.Contains(string(rerr), "no such object") {
return false, nil
}
return false, fmt.Errorf("unable to inspect image '%s': %w\n%s", imageName, err, rerr)
}
images := make([]finchImageSpec, 0)
if err := json.Unmarshal(rout, &images); err != nil {
return false, err
}
for _, image := range images {
if platform == "" || platform == "any" || platform == fmt.Sprintf("%s/%s", image.OS, image.Architecture) {
return true, nil
}
}
return false, nil
}