func imageExistsLocally()

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
}