version/main.go

53 lines
1 KiB
Go

package main
import (
"fmt"
"io/ioutil"
"os"
"os/exec"
)
const warning = "//WARNING! DO NOT EDIT THIS FILE BY HAND. IT IS AUTO GENERATED.\n"
const header = "package main\n"
const code = `
import (
"fmt"
"os"
"strings"
)
func init() {
flagIsSet := func(arg string, sfortFlag string) bool {
arg = strings.Split(arg, "=")[0]
if len(arg)>1 {
if arg[0] == "-"[0] && arg[1] != "-"[0] {
return strings.Contains(arg, sfortFlag)
}
}
return false
}
for _, arg := range os.Args {
if flagIsSet(arg, "v") || arg == "--version" {
fmt.Println(gitVersion)
os.Exit(0)
}
}
}
const gitVersion = "`
func main() {
cmd := exec.Command("git", "describe", "--tags", "--abbrev=0")
out, err := cmd.Output()
if err != nil {
fmt.Println(err)
os.Exit(0)
}
version := string(out)
version = version[:len(version)-1]
content := warning + header + code + version + "\""
ioutil.WriteFile("version.go", []byte(content), 0644)
}