in common/utils.go [31:71]
func GetAgentRelease(client *s3.Client, bucketName *string, prefix *string) *Release {
output := aws.ListBucket(client, bucketName, prefix)
releases := make(map[int]*Release)
releaseDates := make([]int, 0)
for _, value := range output.Contents {
paths := strings.Split(*value.Key, "/")
version := strings.Split(paths[1], ".")
if len(version) != 3 {
continue
}
date, err := strconv.Atoi(version[1])
if err != nil {
continue
}
release, ok := releases[date]
if !ok {
release = &Release{}
releases[date] = release
releaseDates = append(releaseDates, date)
}
if strings.HasSuffix(paths[2], "tgz") || strings.HasSuffix(paths[2], "zip") {
release.s3Location = *value.Key
} else if strings.HasSuffix(paths[2], "shasum") {
if strings.HasPrefix(paths[2], "sha1") {
release.sha1_shasum = *value.Key
} else if strings.HasPrefix(paths[2], "sha256") {
release.sha256_shasum = *value.Key
} else if strings.HasPrefix(paths[2], "sha512") {
release.sha512_shasum = *value.Key
} else if strings.HasPrefix(paths[2], "md5") {
release.md5_shasum = *value.Key
}
}
}
sort.Ints(releaseDates)
latestReleaseDate := releaseDates[len(releaseDates)-1]
return releases[latestReleaseDate]
}