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

57 lines
1.3 KiB
Go
Raw Normal View History

// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
2017-11-19 21:10:04 -08:00
package version // import "miniflux.app/v2/internal/version"
2017-11-19 21:10:04 -08:00
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 == "" {
// Some Miniflux clients expect a specific version format.
// For example, Flux News converts the string version to an integer.
Version = "2.2.x-dev"
}
if Commit == "" {
Commit = getCommit()
}
if BuildDate == "" {
BuildDate = getBuildDate()
}
}