package buildinfo

import "strings"

var (
	Version   = "dev"
	TagName   = "dev"
	Commit    = "unknown"
	BuildDate = "unknown"
)

type Info struct {
	Version   string `json:"version"`
	TagName   string `json:"tag_name"`
	Commit    string `json:"commit"`
	BuildDate string `json:"build_date"`
}

func Current() Info {
	info := Info{
		Version:   strings.TrimSpace(Version),
		TagName:   strings.TrimSpace(TagName),
		Commit:    strings.TrimSpace(Commit),
		BuildDate: strings.TrimSpace(BuildDate),
	}

	if info.Version == "" {
		info.Version = "dev"
	}
	if info.TagName == "" {
		info.TagName = info.Version
	}
	if info.Commit == "" {
		info.Commit = "unknown"
	}
	if info.BuildDate == "" {
		info.BuildDate = "unknown"
	}

	return info
}
