Ctrl K
ComunidadGuías…

cmd/telesrv/buildinfo.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package main

import "runtime/debug"

var (
	gitCommit    = ""
	gitBranch    = ""
	gitTreeState = ""
	buildTime    = ""
)

type buildMetadata struct {
	Commit    string
	Branch    string
	TreeState string
	BuildTime string
	GoVersion string
}

func currentBuildMetadata() buildMetadata {
	meta := buildMetadata{
		Commit:    valueOrUnknown(gitCommit),
		Branch:    valueOrUnknown(gitBranch),
		TreeState: valueOrUnknown(gitTreeState),
		BuildTime: valueOrUnknown(buildTime),
	}
	if info, ok := debug.ReadBuildInfo(); ok {
		meta.GoVersion = info.GoVersion
		settings := map[string]string{}
		for _, setting := range info.Settings {
			settings[setting.Key] = setting.Value
		}
		if meta.Commit == "unknown" {
			meta.Commit = valueOrUnknown(settings["vcs.revision"])
		}
		if meta.TreeState == "unknown" {
			switch settings["vcs.modified"] {
			case "true":
				meta.TreeState = "dirty"
			case "false":
				meta.TreeState = "clean"
			}
		}
	}
	meta.GoVersion = valueOrUnknown(meta.GoVersion)
	return meta
}

func valueOrUnknown(v string) string {
	if v == "" {
		return "unknown"
	}
	return v
}