package version

import (
	"runtime"
)

// Build information set by build process
var (
	GitCommit = "unknown"
	GitBranch = "unknown"
	BuildTime = "unknown"
	GoVersion = runtime.Version()
	Version   = "dev"
)

// BuildInfo contains all build-time information
type BuildInfo struct {
	Version   string `json:"version"`
	GitCommit string `json:"git_commit"`
	GitBranch string `json:"git_branch"`
	BuildTime string `json:"build_time"`
	GoVersion string `json:"go_version"`
}

// GetBuildInfo returns the current build information
func GetBuildInfo() BuildInfo {
	return BuildInfo{
		Version:   Version,
		GitCommit: GitCommit,
		GitBranch: GitBranch,
		BuildTime: BuildTime,
		GoVersion: GoVersion,
	}
}
