package gowit import ( "fmt" "os" "strconv" "strings" "time" "go.wit.com/lib/gui/repolist" "go.wit.com/log" ) func DumpVersions(view *repolist.RepoList) { f, _ := os.OpenFile("/tmp/go.wit.com.versions", os.O_WRONLY|os.O_CREATE, 0600) defer f.Close() for _, sec := range allsections { for _, wrepo := range sec.witRepos { var r *repolist.RepoRow r = view.FindRepo(wrepo.path.String()) if r == nil { log.Info("repo not scanned for some reason", wrepo.path.String()) continue } lastTag := r.LastTag() result := r.Status.Run([]string{"git", "log", "-1", "--format=%at", lastTag}) out := strings.Join(result.Stdout, "\n") out = strings.TrimSpace(out) // Convert the string to an integer gitTagTimestampInt, err := strconv.ParseInt(out, 10, 64) if err != nil { fmt.Println("Error converting timestamp:", err) return } // Parse the Unix timestamp into a time.Time object gitTagDate := time.Unix(gitTagTimestampInt, 0) // Get the current time currentTime := time.Now() // Calculate the duration between the git tag date and the current time duration := currentTime.Sub(gitTagDate) // s := fmt.Sprint(duration) // fmt.Println("Duration since the git tag date:", s) // fmt.Println("Default formatting:", duration.String()) // fmt.Println("Custom formatting:", formatDuration(duration)) log.Warn("found:", wrepo.path.String(), lastTag, out, formatDuration(duration)) fmt.Fprintln(f, wrepo.path.String(), lastTag, out) //wrepo.path.Show() } } }