50 lines
841 B
Go
50 lines
841 B
Go
//go:build ignore
|
|
|
|
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/mdomke/git-semver/v6/version"
|
|
)
|
|
|
|
func fetchVersion() string {
|
|
repoPath, err := os.Getwd()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
v, err := version.NewFromRepo(repoPath)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
s, err := v.Format(version.FullFormat)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
return s
|
|
}
|
|
|
|
func main() {
|
|
lines := []string{
|
|
"package main",
|
|
"// Code generated automatically. DO NOT EDIT",
|
|
"",
|
|
fmt.Sprintf("const gitVersion = \"%s\"", fetchVersion()),
|
|
}
|
|
file, err := os.Create("./version.go")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
writer := bufio.NewWriter(file)
|
|
for _, line := range lines {
|
|
_, err := writer.WriteString(line + "\n")
|
|
if err != nil {
|
|
log.Fatalf("Error while writing to file: %s", err.Error())
|
|
}
|
|
}
|
|
writer.Flush()
|
|
}
|