# HG changeset patch # User Christophe de Vienne <christophe@cdevienne.info> # Date 1732549449 -3600 # Mon Nov 25 16:44:09 2024 +0100 # Node ID 4be74723ba6326f450a33c7b1e7305b2f158be76 # Parent c26b7fd68dd753795a6f1f0920ac64c02cfeb824 build_version_file: fix a crash when no active topic diff --git a/tools/build_version_file/main.go b/tools/build_version_file/main.go --- a/tools/build_version_file/main.go +++ b/tools/build_version_file/main.go @@ -1,6 +1,7 @@ package main import ( + "errors" "fmt" "os" "os/exec" @@ -8,13 +9,9 @@ "text/template" ) -func syscmd(name string, arg ...string) string { +func sysCmd(name string, arg ...string) (string, error) { cmd := exec.Command(name, arg...) out, err := cmd.CombinedOutput() - if err != nil { - fmt.Println(string(out)) - panic(err) - } splitted := strings.Split(string(out), "\n") lines := make([]string, 0, len(splitted)) for _, l := range splitted { @@ -26,10 +23,20 @@ } if len(lines) != 1 { fmt.Println(string(out)) - panic("Expects a single line") + + return "", errors.New("Expects a single line") } - return lines[0] + return lines[0], err +} + +func mustSysCmd(name string, arg ...string) string { + out, err := sysCmd(name, arg...) + if err != nil { + panic(err) + } + + return out } func getVersionTag(tags string) string { @@ -56,17 +63,19 @@ `)) func main() { - sha := syscmd("hg", "id", "--id") - curVersion := getVersionTag(syscmd("hg", "id", "--tags")) - lastVersion := getVersionTag(syscmd("hg", "id", "--tags", "-r", "limit(last(ancestors(.)&tag('re:v.*'))|.,1)")) + sha := mustSysCmd("hg", "id", "--id") + curVersion := getVersionTag(mustSysCmd("hg", "id", "--tags")) + lastVersion := getVersionTag(mustSysCmd("hg", "id", "--tags", "-r", "limit(last(ancestors(.)&tag('re:v.*'))|.,1)")) modified := strings.HasSuffix(sha, "+") jobID := os.Getenv("CI_JOB_ID") - topic := syscmd("hg", "topic", "--current") + topic, err := sysCmd("hg", "topic", "--current") if topic == "no active topic" { topic = "" + } else if err != nil { + panic(err) } - branch := syscmd("hg", "id", "--branch") + branch := mustSysCmd("hg", "id", "--branch") var version string