1
0
Fork 0
forked from External/mediamtx
mediamtx/internal/core/versiongetter/main.go
2024-05-30 23:10:26 +02:00

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)
}
}