2025-04-20 01:52:40 +03:00
|
|
|
package main
|
2025-04-20 01:04:48 +03:00
|
|
|
|
2025-04-20 02:00:13 +03:00
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"os/exec"
|
|
|
|
)
|
2025-04-20 02:25:31 +03:00
|
|
|
|
|
|
|
const warning = "//WARNING! DO NOT EDIT THIS FILE BY HAND. IT IS AUTO GENERATED.\n"
|
|
|
|
|
2025-04-20 02:49:35 +03:00
|
|
|
const header = "package main\n"
|
2025-04-20 02:00:13 +03:00
|
|
|
|
2025-04-20 02:25:31 +03:00
|
|
|
const code = `
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"os"
|
2025-04-20 11:40:01 +03:00
|
|
|
"strings"
|
2025-04-20 02:25:31 +03:00
|
|
|
)
|
|
|
|
|
2025-04-21 22:39:10 +03:00
|
|
|
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)
|
|
|
|
}
|
2025-04-20 11:40:01 +03:00
|
|
|
}
|
2025-04-21 22:39:10 +03:00
|
|
|
return false
|
2025-04-20 11:40:01 +03:00
|
|
|
}
|
|
|
|
|
2025-04-21 22:39:10 +03:00
|
|
|
for _, arg := range os.Args {
|
|
|
|
if flagIsSet(arg, "v") || arg == "--version" {
|
2025-04-20 02:43:47 +03:00
|
|
|
fmt.Println(gitVersion)
|
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
}
|
2025-04-20 02:25:31 +03:00
|
|
|
}
|
2025-04-20 02:49:35 +03:00
|
|
|
const gitVersion = "`
|
2025-04-20 02:25:31 +03:00
|
|
|
|
2025-04-20 02:00:13 +03:00
|
|
|
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]
|
2025-04-20 02:49:35 +03:00
|
|
|
content := warning + header + code + version + "\""
|
2025-04-20 02:00:13 +03:00
|
|
|
|
|
|
|
ioutil.WriteFile("version.go", []byte(content), 0644)
|
2025-04-20 01:04:48 +03:00
|
|
|
}
|