// Package moxvar provides the version number of a mox build.
package moxvar

import (
	"runtime/debug"
)

// Version is set at runtime based on the Go module used to build.
var Version = "(devel)"

func init() {
	buildInfo, ok := debug.ReadBuildInfo()
	if !ok {
		return
	}
	Version = buildInfo.Main.Version
	if Version == "(devel)" {
		var vcsRev, vcsMod string
		for _, setting := range buildInfo.Settings {
			if setting.Key == "vcs.revision" {
				vcsRev = setting.Value
			} else if setting.Key == "vcs.modified" {
				vcsMod = setting.Value
			}
		}
		if vcsRev == "" {
			return
		}
		Version = vcsRev
		switch vcsMod {
		case "false":
		case "true":
			Version += "+modifications"
		default:
			Version += "+unknown"
		}
	}
}