summaryrefslogtreecommitdiff
path: root/version.go
diff options
context:
space:
mode:
Diffstat (limited to 'version.go')
-rw-r--r--version.go98
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)
+}