func getLatestLightsailctlVersion()

in internal/updatecheck.go [43:69]


func getLatestLightsailctlVersion(
	ctx context.Context,
	g ContainerAPIMetadataGetter,
) (Semver, error) {
	res, err := g.GetContainerAPIMetadataWithContext(ctx, new(lightsail.GetContainerAPIMetadataInput))
	if err != nil {
		return "", fmt.Errorf("could not get latest lightsailctl version: %v", err)
	}

	var rawSemver string
	for _, md := range res.Metadata {
		if v := aws.StringValue(md["name"]); v == "lightsailctlVersion" {
			rawSemver = aws.StringValue(md["value"])
		}
	}

	if rawSemver == "" {
		return "", fmt.Errorf("latest lightsailctl version was not in GetContainerAPIMetadata response")
	}

	ver := Semver(rawSemver)
	if !ver.IsValid() {
		return "", fmt.Errorf("latest lightsailctl version is not a semver: %q", rawSemver)
	}

	return ver, nil
}