diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 123 |
1 files changed, 113 insertions, 10 deletions
@@ -27,7 +27,7 @@ type repo struct { bLabel *gui.Node // branch label lastLabel *gui.Node // last tagged version label vLabel *gui.Node // version label - tagsDrop *gui.Node // list of all tags + // tagsDrop *gui.Node // list of all tags dirtyLabel *gui.Node // git state (dirty or not?) masterVersion *gui.Node // the master branch version @@ -44,25 +44,44 @@ func main() { myGui = gui.New().Default() repoworld() - checkrepos() + + /* + for i, r := range allrepos { + log.Warn("scannning", i, r.path) + r.scan() + } + */ + gui.Watchdog() } -func addRepo(grid *gui.Node, path string) *repo { +func (r *repo) getPath() string { + return r.path +} + +func addRepo(grid *gui.Node, path string) { newRepo := new(repo) + if repostatus.VerifyLocalGoRepo(path) { + log.Warn("newRepo actually exists", newRepo.getPath()) + } else { + log.Warn("newRepo does not exist", newRepo.getPath()) + return + } + newRepo.path = path newRepo.pLabel = grid.NewLabel(path) newRepo.bLabel = grid.NewLabel("") newRepo.lastLabel = grid.NewLabel("") newRepo.vLabel = grid.NewLabel("") - newRepo.tagsDrop = grid.NewDropdown("tags") + // newRepo.tagsDrop = grid.NewDropdown("tags") newRepo.masterVersion = grid.NewLabel("") newRepo.develVersion = grid.NewLabel("") newRepo.jcarrVersion = grid.NewLabel("") newRepo.dirtyLabel = grid.NewLabel("") + /* newRepo.cButton = grid.NewButton("status", func () { log.Println("repo status for", newRepo.path) newRepo.scan() @@ -76,16 +95,49 @@ func addRepo(grid *gui.Node, path string) *repo { } newRepo.status.Toggle() }) + */ newRepo.pButton = grid.NewButton("rescan", func () { - newRepo.scan() + newRepo.newScan() + }) + + /* + grid.NewButton("SierpiĆski", func () { + if newRepo.status != nil { + log.Warn("status window already exists") + } + newRepo.status = repostatus.New(myGui, newRepo.path) + newRepo.status.Horizontal() + newRepo.status.Make() + newRepo.status.Make2() + }) + */ + grid.NewButton("Toggle()", func () { + if newRepo.status == nil { + log.Warn("status window doesn't exist") + return + } + log.Warn("status window exists. trying Update() here") + newRepo.status.Toggle() + }) + grid.NewButton("TestDraw()", func () { + if newRepo.status == nil { + log.Warn("status window doesn't exist") + return + } + log.Warn("status window exists. trying TestDraw() here") + newRepo.status.TestDraw() }) if path == "" { newRepo.cButton.Hide() newRepo.pButton.Hide() - return newRepo } + newRepo.status = repostatus.New(myGui, newRepo.path) + newRepo.status.Horizontal() + newRepo.status.Make() + newRepo.status.Make2() + newRepo.status.Update() + newRepo.newScan() allrepos = append(allrepos, newRepo) - return newRepo } // This creates a window @@ -100,14 +152,15 @@ func repoworld() { grid.NewLabel("") grid.NewLabel("branch") grid.NewLabel("last tag") - grid.NewLabel("Version") - grid.NewLabel("tags") + grid.NewLabel("Current Version") + // grid.NewLabel("tags") grid.NewLabel("master") grid.NewLabel("devel") grid.NewLabel("jcarr") grid.NewLabel("Status") grid.NewLabel("commit") - grid.NewLabel("push to") + grid.NewLabel("Toggle()") + grid.NewLabel("Draw()") repos := myrepolist() for _, repo := range repos { @@ -146,3 +199,53 @@ func myrepolist() []string { lines := strings.Split(out, "\n") return lines } + +func (r *repo) newScan() bool { + if r.status == nil { + log.Warn("repo.status = nil. not initialized for some reason") + return false + } + // r.scan() + if repostatus.VerifyLocalGoRepo(r.getPath()) { + log.Warn("repo actually exists", r.getPath()) + } else { + log.Warn("repo does not exist", r.getPath()) + return false + } + mn := r.status.GetMasterName() + mv := r.status.GetMasterVersion() + r.masterVersion.Set(mn + " " + mv) + + dn := r.status.GetDevelName() + dv := r.status.GetDevelVersion() + r.develVersion.Set(dn + " " + dv) + + un := r.status.GetUserName() + uv := r.status.GetUserVersion() + r.jcarrVersion.Set(un + " " + uv) + + cbname := r.status.GetCurrentBranchName() + cbversion := r.status.GetCurrentBranchVersion() + ltversion := r.status.GetLastTagVersion() + r.lastLabel.Set(cbname + " " + cbversion) + r.vLabel.Set(cbname + " " + ltversion) + + if r.status.CheckDirty() { + log.Warn("CheckDirty() true") + r.dirtyLabel.Set("dirty") + return false + } + log.Warn("CheckDirty() no") + r.dirtyLabel.Set("not dirty") + + if r.status.CheckBranches() { + log.Warn("Branches are Perfect") + r.dirtyLabel.SetText("PEFECT") + return true + } else { + log.Warn("Branches are not Perfect") + r.dirtyLabel.SetText("merge") + } + + return false +} |
