From d0a835175e0906622b69fdf03bce6641eb1fcf29 Mon Sep 17 00:00:00 2001 From: Darell Tan Date: Sat, 17 Jan 2026 01:43:56 +0800 Subject: [PATCH] Use VCS version stamp from Go 1.24 Go 1.24 now adds a human readable version to BuildInfo, similar to the output for `git describe`. Also output version in log on startup. --- cmd/hapz2m/main.go | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/cmd/hapz2m/main.go b/cmd/hapz2m/main.go index 4b887fc..da5e754 100644 --- a/cmd/hapz2m/main.go +++ b/cmd/hapz2m/main.go @@ -68,36 +68,20 @@ func parseConfig(fname string) (cfg *config, err error) { } func readVcsRevision() string { - ver := "" - dirty := false if info, ok := debug.ReadBuildInfo(); ok { - for _, s := range info.Settings { - switch s.Key { - case "vcs.revision": - if len(s.Value) >= 8 { - ver = s.Value[:8] - } else { - ver = s.Value - } - - case "vcs.modified": - dirty = s.Value == "true" - } - } - if dirty { - ver += "-dirty" - } - return ver + return info.Main.Version } return "?" } func main() { + versionStr := fmt.Sprintf("hapz2m version %s", readVcsRevision()) + flag.Usage = func() { - fmt.Fprintf(flag.CommandLine.Output(), "hapz2m version %s\n"+ + fmt.Fprintf(flag.CommandLine.Output(), versionStr+"\n"+ "HomeKit <-> zigbee2mqtt Bridge\n"+ "\nUsage: %s [options...]\n", - readVcsRevision(), filepath.Base(os.Args[0])) + filepath.Base(os.Args[0])) flag.PrintDefaults() } @@ -141,6 +125,8 @@ func main() { br.Interfaces = cfg.Interfaces + log.Println(versionStr) + err = br.ConnectMQTT() if err != nil { log.Printf("cannot connect to MQTT: %s", err)