func updateBottlerocketReleasesFile()

in tools/version-tracker/pkg/commands/upgrade/upgrade.go [945:972]


func updateBottlerocketReleasesFile(bottlerocketReleaseMap map[string]interface{}, bottlerocketReleasesFilePath, latestBottlerocketVersion string) error {
	for channel := range bottlerocketReleaseMap {
		for _, format := range constants.BottlerocketImageFormats {
			releaseVersionByFormat := bottlerocketReleaseMap[channel].(map[string]interface{})[fmt.Sprintf("%s-release-version", format)]
			if releaseVersionByFormat != nil {
				imageExists, err := verifyBRImageExists(channel, format, latestBottlerocketVersion)
				if err != nil {
					return fmt.Errorf("checking if Bottlerocket %s image exists for %s release branch: %v", format, channel, err)
				}

				if imageExists {
					bottlerocketReleaseMap[channel].(map[string]interface{})[fmt.Sprintf("%s-release-version", format)] = latestBottlerocketVersion
				}
			}
		}
	}
	updatedBottlerocketReleases, err := yaml.Marshal(bottlerocketReleaseMap)
	if err != nil {
		return fmt.Errorf("marshalling Bottlerocket releases: %v", err)
	}

	err = os.WriteFile(bottlerocketReleasesFilePath, updatedBottlerocketReleases, 0o644)
	if err != nil {
		return fmt.Errorf("writing Bottlerocket releases file: %v", err)
	}

	return nil
}