package main import ( _ "embed" _ "github.com/ewy1/pik/flags" "github.com/ewy1/pik/spool" "github.com/spf13/pflag" "runtime" "runtime/debug" "time" ) //go:embed version.txt var version string type ManData struct { Flags []pflag.Flag Now string Revision string Runtime string Version string ExitCodes map[int]*spool.ExitCode } func NewData() ManData { var flags []pflag.Flag pflag.Parse() pflag.VisitAll(func(flag *pflag.Flag) { flags = append(flags, *flag) }) info, ok := debug.ReadBuildInfo() if !ok { _, _ = spool.Panic(spool.NoDebugInfo, "could not read debug info\n") } return ManData{ Flags: flags, Now: time.Now().Format(time.DateTime), Runtime: runtime.Version(), Version: version, Revision: info.Main.Version, ExitCodes: spool.CodeMap, } }