2024-02-11 06:32:48 -06:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2024-11-06 15:52:43 -06:00
|
|
|
"os"
|
2024-02-11 06:32:48 -06:00
|
|
|
"strings"
|
2024-02-12 15:23:44 -06:00
|
|
|
"time"
|
2024-02-11 06:32:48 -06:00
|
|
|
|
|
|
|
"go.wit.com/lib/gadgets"
|
|
|
|
"go.wit.com/lib/gui/repostatus"
|
|
|
|
"go.wit.com/log"
|
|
|
|
)
|
|
|
|
|
|
|
|
func RemoveFirstElement(slice []string) (string, []string) {
|
|
|
|
if len(slice) == 0 {
|
|
|
|
return "", slice // Return the original slice if it's empty
|
|
|
|
}
|
|
|
|
return slice[0], slice[1:] // Return the slice without the first element
|
|
|
|
}
|
|
|
|
|
|
|
|
// homeDir, _ := os.UserHomeDir()
|
|
|
|
|
|
|
|
func (c *controlBox) addRepo(path string) {
|
|
|
|
path = strings.Trim(path, "/") // trim any extranous '/' chars put in the config file by the user
|
|
|
|
if path == "" {
|
|
|
|
log.Warn("addRepo() got empty path", path)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2024-02-20 23:13:26 -06:00
|
|
|
// if repostatus.VerifyLocalGoRepo(path) {
|
|
|
|
// log.Verbose("path actually exists", path)
|
|
|
|
// } else {
|
|
|
|
// log.Warn("repostatus.VerifyLocalGoRepo() failed for for", path)
|
|
|
|
// return
|
|
|
|
// }
|
2024-02-11 06:32:48 -06:00
|
|
|
|
|
|
|
c.pathL = gadgets.NewOneLiner(c.grid, "path")
|
|
|
|
c.pathL.SetText(path)
|
|
|
|
c.grid.NextRow()
|
|
|
|
|
|
|
|
c.lastTag = gadgets.NewOneLiner(c.grid, "lastTag")
|
|
|
|
c.grid.NextRow()
|
|
|
|
|
|
|
|
c.dirtyL = gadgets.NewOneLiner(c.grid, "dirty")
|
|
|
|
c.grid.NextRow()
|
|
|
|
|
|
|
|
c.currentL = gadgets.NewOneLiner(c.grid, "current")
|
|
|
|
c.grid.NextRow()
|
|
|
|
|
2024-02-12 15:23:44 -06:00
|
|
|
c.buildDate = gadgets.NewOneLiner(c.grid, "Build Date")
|
|
|
|
c.grid.NextRow()
|
|
|
|
|
|
|
|
stamp := time.Now().UTC().Format("2006/01/02 15:04:05 UTC")
|
|
|
|
c.buildDate.SetText(stamp)
|
|
|
|
|
|
|
|
c.tagDate = gadgets.NewOneLiner(c.grid, "git tag Date")
|
|
|
|
c.grid.NextRow()
|
|
|
|
|
2024-02-20 23:13:26 -06:00
|
|
|
err, repo := repostatus.NewRepoStatusWindow(path)
|
|
|
|
if err != nil {
|
|
|
|
log.Info("path did not work", path, err)
|
|
|
|
return
|
|
|
|
}
|
2024-11-06 15:52:43 -06:00
|
|
|
if repo == nil {
|
|
|
|
log.Info("repo == nil", path, err)
|
|
|
|
os.Exit(-1)
|
|
|
|
return
|
|
|
|
}
|
2024-02-20 23:13:26 -06:00
|
|
|
c.status = repo
|
|
|
|
// c.status.SetMainWorkingName("master")
|
|
|
|
// c.status.SetDevelWorkingName("devel")
|
|
|
|
// c.status.SetUserWorkingName("jcarr")
|
2024-02-11 06:32:48 -06:00
|
|
|
c.status.Update()
|
|
|
|
|
|
|
|
cbname := c.status.GetCurrentBranchName()
|
|
|
|
cbversion := c.status.GetCurrentBranchVersion()
|
2024-03-02 17:51:34 -06:00
|
|
|
debversion := c.status.DebianCurrentVersion()
|
2024-02-11 06:32:48 -06:00
|
|
|
|
|
|
|
if c.status.CheckDirty() {
|
|
|
|
c.dirtyL.SetText("true")
|
|
|
|
} else {
|
|
|
|
c.dirtyL.SetText("false")
|
|
|
|
}
|
|
|
|
|
2024-02-20 23:13:26 -06:00
|
|
|
lasttag := c.status.GetLastTagVersion()
|
2024-11-06 13:46:15 -06:00
|
|
|
if argv.Release {
|
2024-03-02 17:51:34 -06:00
|
|
|
debversion = c.status.DebianReleaseVersion()
|
2024-02-20 23:13:26 -06:00
|
|
|
c.dirtyL.SetText("false")
|
|
|
|
}
|
|
|
|
|
2024-02-11 06:32:48 -06:00
|
|
|
c.Version.SetText(debversion)
|
|
|
|
|
|
|
|
c.lastTag.SetText(lasttag)
|
|
|
|
c.currentL.SetText(cbname + " " + cbversion)
|
|
|
|
|
2024-02-12 15:23:44 -06:00
|
|
|
tagDate := c.getDateStamp(lasttag)
|
|
|
|
c.tagDate.SetText(tagDate)
|
|
|
|
|
2024-02-20 23:13:26 -06:00
|
|
|
if s, ok := c.status.Changed(); ok {
|
|
|
|
log.Warn("should scan here", s)
|
2024-02-11 06:32:48 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|