2022-01-27 05:08:22 +08:00
|
|
|
// Generate the versioninfo.json with the current build version from the makefile
|
|
|
|
|
// The file versioninfo.json is used by the goversioninfo package to add version info into a windows binary
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"encoding/json"
|
|
|
|
|
"log" //nolint:revive
|
2022-09-20 23:37:14 +08:00
|
|
|
"os"
|
2022-01-27 05:08:22 +08:00
|
|
|
"os/exec"
|
|
|
|
|
"strings"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type VersionInfo struct {
|
|
|
|
|
StringFileInfo StringFileInfo
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type StringFileInfo struct {
|
|
|
|
|
ProductName string
|
|
|
|
|
ProductVersion string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
e := exec.Command("make", "version")
|
|
|
|
|
var out bytes.Buffer
|
|
|
|
|
e.Stdout = &out
|
|
|
|
|
if err := e.Run(); err != nil {
|
|
|
|
|
log.Fatalf("Failed to get version from makefile: %v", err)
|
|
|
|
|
}
|
|
|
|
|
version := strings.TrimSuffix(out.String(), "\n")
|
|
|
|
|
|
|
|
|
|
v := VersionInfo{
|
|
|
|
|
StringFileInfo: StringFileInfo{
|
|
|
|
|
ProductName: "Telegraf",
|
|
|
|
|
ProductVersion: version,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
file, err := json.MarshalIndent(v, "", " ")
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatalf("Failed to marshal json: %v", err)
|
|
|
|
|
}
|
2022-09-20 23:37:14 +08:00
|
|
|
if err := os.WriteFile("cmd/telegraf/versioninfo.json", file, 0644); err != nil {
|
2022-01-27 05:08:22 +08:00
|
|
|
log.Fatalf("Failed to write versioninfo.json: %v", err)
|
|
|
|
|
}
|
|
|
|
|
}
|