1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-26 18:21:01 +00:00
miniflux-v2/internal/version/version.go

54 lines
1.1 KiB
Go

// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
package version // import "miniflux.app/v2/internal/version"
import (
"runtime/debug"
)
// Variables populated at build time when using LD_FLAGS.
var (
Version = ""
Commit = ""
BuildDate = ""
)
func getCommit() string {
if info, ok := debug.ReadBuildInfo(); ok {
for _, setting := range info.Settings {
if setting.Key == "vcs.revision" {
if len(setting.Value) >= 8 {
return setting.Value[:8]
}
return setting.Value
}
}
}
return "Unknown (built outside VCS)"
}
func getBuildDate() string {
if info, ok := debug.ReadBuildInfo(); ok {
for _, setting := range info.Settings {
if setting.Key == "vcs.time" {
return setting.Value
}
}
}
return "Unknown (built outside VCS)"
}
// Populate build information from VCS metadata if LDFLAGS are not set.
// Falls back to values from the Go module's build info when available.
func init() {
if Version == "" {
Version = "Development Version"
}
if Commit == "" {
Commit = getCommit()
}
if BuildDate == "" {
BuildDate = getBuildDate()
}
}