in internal/aws/source.go [168:191]
func getSource(ctx context.Context, artifactName string, availableArtifacts []Artifact) (artifact.Source, error) {
for _, releaseArtifact := range availableArtifacts {
if releaseArtifact.Name == artifactName && releaseArtifact.Arch == runtime.GOARCH && releaseArtifact.OS == runtime.GOOS {
obj, err := util.GetHttpFileReader(ctx, releaseArtifact.URI)
if err != nil {
return nil, fmt.Errorf("getting artifact file reader: %w", err)
}
artifactChecksum, err := util.GetHttpFile(ctx, releaseArtifact.ChecksumURI)
if err != nil {
obj.Close()
return nil, fmt.Errorf("getting artifact checksum file reader: %w", err)
}
source, err := artifact.WithChecksum(obj, sha256.New(), artifactChecksum)
if err != nil {
obj.Close()
return nil, fmt.Errorf("getting artifact with checksum: %w", err)
}
return source, nil
}
}
return nil, fmt.Errorf("could not find artifact for %s arch and %s os", runtime.GOARCH, runtime.GOOS)
}