forked from External/mediamtx
63 lines
967 B
Go
63 lines
967 B
Go
// Package main contains an utility to get the server version
|
|
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"html/template"
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
)
|
|
|
|
var tpl = template.Must(template.New("").Parse(
|
|
`// autogenerated:yes
|
|
package core
|
|
|
|
const version = "{{ .Version }}"
|
|
`))
|
|
|
|
func do() error {
|
|
log.Println("getting version...")
|
|
|
|
temp, _ := exec.Command("git", "status").CombinedOutput()
|
|
/*if err != nil {
|
|
return err
|
|
}*/
|
|
|
|
fmt.Println(string(temp))
|
|
|
|
stdout, err := exec.Command("git", "describe", "--tags").Output()
|
|
|
|
fmt.Println(string(stdout))
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
version := string(stdout[:len(stdout)-1])
|
|
|
|
var buf bytes.Buffer
|
|
err = tpl.Execute(&buf, map[string]interface{}{
|
|
"Version": version,
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = os.WriteFile("version.go", buf.Bytes(), 0o644)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
log.Println("ok")
|
|
return nil
|
|
}
|
|
|
|
func main() {
|
|
err := do()
|
|
if err != nil {
|
|
log.Printf("ERR: %v", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|