58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"os"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
// The metadata needed from goreleaser.
|
||
|
type Metadata struct {
|
||
|
Name string `json:"project_name"`
|
||
|
Version string `json:"version"`
|
||
|
Date time.Time `json:"date"`
|
||
|
}
|
||
|
|
||
|
// Read and parse metadata file
|
||
|
func readMetadataFile(metadataFile string) (*Metadata, error) {
|
||
|
// Read file, if error return the error.
|
||
|
jsonFile, err := os.Open(metadataFile)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
// Attempt to decode the file.
|
||
|
metadata := new(Metadata)
|
||
|
decoder := json.NewDecoder(jsonFile)
|
||
|
err = decoder.Decode(metadata)
|
||
|
jsonFile.Close()
|
||
|
|
||
|
// Return the metadata and if any error occurred.
|
||
|
return metadata, err
|
||
|
}
|
||
|
|
||
|
// Artifcat map.
|
||
|
type Artifact struct {
|
||
|
Name string `json:"name"`
|
||
|
Path string `json:"path"`
|
||
|
Type string `json:"type"`
|
||
|
}
|
||
|
|
||
|
// Read and parse metadata file
|
||
|
func readArtifactFile(artifactFile string) ([]*Artifact, error) {
|
||
|
// Read file, if error return the error.
|
||
|
jsonFile, err := os.Open(artifactFile)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
// Attempt to decode the file.
|
||
|
var artifacts []*Artifact
|
||
|
decoder := json.NewDecoder(jsonFile)
|
||
|
err = decoder.Decode(&artifacts)
|
||
|
jsonFile.Close()
|
||
|
|
||
|
// Return the metadata and if any error occurred.
|
||
|
return artifacts, err
|
||
|
}
|