@@ -6,6 +6,7 @@ package main
66
77import (
88 "context"
9+ _ "embed"
910 "flag"
1011 "fmt"
1112 "log/slog"
@@ -24,13 +25,32 @@ import (
2425 "github.com/google/go-github/v57/github"
2526)
2627
28+ // VERSION file embedded at compile time (created by make release)
29+ //
30+ //go:embed VERSION
31+ var versionFile string
32+
2733// Version information - set during build with -ldflags.
34+ // If not set via ldflags, getVersion() will read from embedded VERSION file.
2835var (
2936 version = "dev"
3037 commit = "unknown"
3138 date = "unknown"
3239)
3340
41+ // getVersion returns the version string, preferring ldflags but falling back to VERSION file.
42+ func getVersion () string {
43+ // If version was set via ldflags and isn't the default, use it
44+ if version != "" && version != "dev" {
45+ return version
46+ }
47+ // Fall back to embedded VERSION file
48+ if v := strings .TrimSpace (versionFile ); v != "" {
49+ return v
50+ }
51+ return "dev"
52+ }
53+
3454const (
3555 cacheTTL = 10 * 24 * time .Hour // 10 days - rely mostly on PR UpdatedAt
3656 runningTestsCacheTTL = 2 * time .Minute // Short TTL for PRs with incomplete tests to catch completions quickly
@@ -134,7 +154,7 @@ func main() {
134154
135155 // Handle version flag
136156 if showVersion {
137- fmt .Printf ("goose version %s\n commit: %s\n built: %s\n " , version , commit , date )
157+ fmt .Printf ("goose version %s\n commit: %s\n built: %s\n " , getVersion () , commit , date )
138158 os .Exit (0 )
139159 }
140160
@@ -176,7 +196,7 @@ func main() {
176196 Level : logLevel ,
177197 }
178198 slog .SetDefault (slog .New (slog .NewTextHandler (os .Stderr , opts )))
179- slog .Info ("Starting Goose" , "version" , version , "commit" , commit , "date" , date )
199+ slog .Info ("Starting Goose" , "version" , getVersion () , "commit" , commit , "date" , date )
180200 slog .Info ("Configuration" , "update_interval" , updateInterval , "max_retries" , maxRetries , "max_delay" , maxRetryDelay )
181201 slog .Info ("Browser auto-open configuration" ,
182202 "startup_delay" , browserOpenDelay ,
0 commit comments