diff options
Diffstat (limited to 'version.go')
| -rw-r--r-- | version.go | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/version.go b/version.go new file mode 100644 index 0000000..0b5455e --- /dev/null +++ b/version.go @@ -0,0 +1,98 @@ +package prep + +// initializes logging and command line options + +import ( + "fmt" + "os" + "strconv" + "strings" + "time" + + "go.wit.com/lib/config" + "go.wit.com/log" +) + +func (pb *Auto) Version() string { + return pb.getVersion() +} + +func doVersion(pb *Auto) { + log.Info(pb.getVersion()) + os.Exit(0) +} + +func (pb *Auto) getVersion() string { + if myAuto.buildtime == nil { + return "app doesn't have argv.BuildVersion()" + } + BUILDTIME, VERSION := myAuto.buildtime() + + parts := strings.Split(BUILDTIME, ".") + if len(parts) == 1 { + // The input epoch seconds + // epochSeconds := int64(1758646486) + num, err := strconv.Atoi(BUILDTIME) + epochSeconds := int64(num) + if err == nil { + + // 1. Convert the epoch seconds to a time.Time object. + // time.Unix() creates the time in the UTC timezone by default. + t := time.Unix(epochSeconds, 0) + + // 2. Convert the UTC time to the computer's local timezone. + localTime := t.Local() + + // 3. Print the result. The default format is clear and includes the timezone. + // fmt.Println("Default format:", localTime) + // For a more human-friendly format, use the Format() method. + // Go uses a special reference time for formatting: Mon Jan 2 15:04:05 2006 MST + // You lay out your desired format using these specific numbers. + // formattedString := localTime.Format("Monday, January 2, 2006 at 3:04:05 PM (MST)") + // fmt.Println(" Custom format:", formattedString) + + // now := time.Now() + // dur := time.Since(localTime) + // BUILDTIME = fmt.Sprintf("%s age(%v)", localTime.String(), , config.FormatDuration(time.Since(localTime))) + stamp := log.Sprintf("Built %s Age(%s)", localTime.Format("2006-01-02 15:04"), config.FormatDuration(time.Since(localTime))) + return fmt.Sprintf("%s %s %s", pb.Argname, VERSION, stamp) + } + } + + return fmt.Sprintf("%s %s Built on %s", pb.Argname, VERSION, BUILDTIME) +} + +func StandardVersion(ARGNAME, VERSION, BUILDTIME string) string { + parts := strings.Split(BUILDTIME, ".") + if len(parts) == 1 { + // The input epoch seconds + // epochSeconds := int64(1758646486) + num, err := strconv.Atoi(BUILDTIME) + epochSeconds := int64(num) + if err == nil { + + // 1. Convert the epoch seconds to a time.Time object. + // time.Unix() creates the time in the UTC timezone by default. + t := time.Unix(epochSeconds, 0) + + // 2. Convert the UTC time to the computer's local timezone. + localTime := t.Local() + + // 3. Print the result. The default format is clear and includes the timezone. + // fmt.Println("Default format:", localTime) + // For a more human-friendly format, use the Format() method. + // Go uses a special reference time for formatting: Mon Jan 2 15:04:05 2006 MST + // You lay out your desired format using these specific numbers. + // formattedString := localTime.Format("Monday, January 2, 2006 at 3:04:05 PM (MST)") + // fmt.Println(" Custom format:", formattedString) + + // now := time.Now() + // dur := time.Since(localTime) + // BUILDTIME = fmt.Sprintf("%s age(%v)", localTime.String(), , config.FormatDuration(time.Since(localTime))) + stamp := log.Sprintf("Built %s Age(%s)", localTime.Format("2006-01-02 15:04"), config.FormatDuration(time.Since(localTime))) + return fmt.Sprintf("%s %s %s", ARGNAME, VERSION, stamp) + } + } + + return fmt.Sprintf("%s %s Built on %s", ARGNAME, VERSION, BUILDTIME) +} |
