diff --git a/Makefile b/Makefile index f2a4b9c..2b7929f 100644 --- a/Makefile +++ b/Makefile @@ -2,12 +2,12 @@ VERSION = $(shell git describe --tags) BUILDTIME = $(shell date +%Y.%m.%d) info: install - # make dirty @echo "make restart # remove the repos.pb file" @echo "make private # only the private ones" @echo "make mine # just show my repos" - @echo "make pull # run git pull on every repo" + @echo "make pull-mine # run git pull on my repos" @echo "make dirty # CheckDirty()" + forge vet: @GO111MODULE=off go vet diff --git a/windowPatches.go b/windowPatches.go index 6f06637..0b5cbf8 100644 --- a/windowPatches.go +++ b/windowPatches.go @@ -1,6 +1,7 @@ package main import ( + "fmt" "strconv" "go.wit.com/gui" @@ -9,28 +10,17 @@ import ( "go.wit.com/log" ) -/* -type patch struct { - ref string - giturl string - comment string - rs *repostatus.RepoStatus -} -*/ - type patchSummary struct { - grid *gui.Node - updateB *gui.Node - docsB *gui.Node - gitPushB *gui.Node - gitPullB *gui.Node - checkB *gui.Node - - // stats - totalOL *gadgets.OneLiner - // totalGoOL *gadgets.OneLiner + grid *gui.Node + updateB *gui.Node + docsB *gui.Node + gitPushB *gui.Node + gitPullB *gui.Node + checkB *gui.Node + totalOL *gadgets.OneLiner dirtyOL *gadgets.OneLiner readonlyOL *gadgets.OneLiner + rw *gadgets.OneLiner totalPatchesOL *gadgets.OneLiner totalUserRepos *gui.Node totalDevelRepos *gui.Node @@ -38,13 +28,12 @@ type patchSummary struct { totalUserPatches *gui.Node totalDevelPatches *gui.Node totalMasterPatches *gui.Node - - // patch set generation - unknownOL *gadgets.BasicEntry - unknownSubmitB *gui.Node - reason *gadgets.BasicEntry - submitB *gui.Node - allp []*repolist.Patch + fileCount *gui.Node + unknownOL *gadgets.BasicEntry + unknownSubmitB *gui.Node + reason *gadgets.BasicEntry + submitB *gui.Node + allp []*repolist.Patch } func submitPatchesBox(box *gui.Node) *patchSummary { @@ -52,98 +41,24 @@ func submitPatchesBox(box *gui.Node) *patchSummary { group1 := box.NewGroup("Patch Summary") s.grid = group1.RawGrid() - /* - s.grid.NewButton("Update Patch Counts", func() { - var repocount, patchcount int - // broken after move to forge protobuf - all := me.forge.Repos.SortByFullPath() - for all.Scan() { - repo := all.Next() - if repo.GetReadOnly() { - continue - } - i, _ := repo.GetMasterPatches() - patchcount += i - if i > 0 { - repocount += 1 - } - } - s.totalMasterPatches.SetText(strconv.Itoa(patchcount) + " patches") - s.totalMasterRepos.SetText(strconv.Itoa(repocount) + " go repos") - - repocount = 0 - patchcount = 0 - // broken after move to forge protobuf - all = me.forge.Repos.SortByFullPath() - for all.Scan() { - repo := all.Next() - if repo.GetReadOnly() { - continue - } - i, _ := repo.GetUserPatches() - patchcount += i - if i > 0 { - repocount += 1 - } - } - s.totalUserPatches.SetText(strconv.Itoa(patchcount) + " patches") - s.totalUserRepos.SetText(strconv.Itoa(repocount) + " go repos") - }) - */ - - /* this used to be the way and should probably be revisited - s.grid.NewButton("Make Patches", func() { - for i, p := range s.allp { - log.Info(i, p.Ref, p.RS.String()) - } - }) - */ - - s.grid.NextRow() - s.totalOL = gadgets.NewOneLiner(s.grid, "Total") + _ = s.grid.NewLabel("total changes") + _ = s.grid.NewLabel("user to devel") s.grid.NextRow() - // s.totalGoOL = gadgets.NewOneLiner(s.grid, "Total GO") - // s.grid.NextRow() - s.dirtyOL = gadgets.NewOneLiner(s.grid, "dirty") + _ = s.grid.NewLabel("") // skip a column + s.totalUserRepos = s.grid.NewLabel("x go repos") s.grid.NextRow() s.readonlyOL = gadgets.NewOneLiner(s.grid, "read-only") - s.grid.NextRow() - - // s.grid = group1.RawGrid() - s.grid.NewLabel("") - s.grid.NewLabel("") - s.grid.NewLabel("user to devel") - s.grid.NewLabel("devel to master") - s.grid.NewLabel("master to last tag") - s.grid.NextRow() - - s.grid.NewLabel("total modified") - s.grid.NewLabel("") - s.totalUserRepos = s.grid.NewLabel("x go repos") - s.totalDevelRepos = s.grid.NewLabel("") - s.totalMasterRepos = s.grid.NewLabel("x go repos") - s.grid.NextRow() - - s.totalPatchesOL = gadgets.NewOneLiner(s.grid, "total commits") + _ = s.grid.NewLabel("") // skip a column s.totalUserPatches = s.grid.NewLabel("x patches") - s.totalDevelPatches = s.grid.NewLabel("") - s.totalMasterPatches = s.grid.NewLabel("x patches") s.grid.NextRow() - /* - s.grid.NewLabel("") - s.grid.NewLabel("") - s.grid.NewButton("merge from user", func() { - log.Info("this should make a patchset of your patches") - }) - s.grid.NewButton("merge from devel", func() { - log.Info("this probably should not exist") - }) - */ + s.rw = gadgets.NewOneLiner(s.grid, "r/w") + _ = s.grid.NewLabel("") // skip a column + s.fileCount = s.grid.NewLabel("x files") s.grid.NextRow() group1 = box.NewGroup("Submit Patch Set") @@ -213,27 +128,18 @@ func submitPatchesBox(box *gui.Node) *patchSummary { } }) - /* - s.submitB = s.grid.NewButton("Submit quilt", func() { - log.Info("do a submit here") - }) - */ // disable these until there are not dirty repos // s.reason.Disable() s.submitB.Disable() s.grid.NextRow() - // s.unknownOL.Disable() - // s.unknownSubmitB.Disable() - s.grid.NextRow() - return s } // does not run any commands func (s *patchSummary) Update() { - var total, dirty, readonly int - var userT, develT, masterT int + var total, dirty, readonly, rw int + var userT int // , develT, masterT int // var userP, develP, masterP int // broken after move to forge protobuf all := me.forge.Repos.SortByFullPath() @@ -243,45 +149,16 @@ func (s *patchSummary) Update() { if repo.IsDirty() { dirty += 1 } - if repo.GetReadOnly() { + if me.forge.Config.IsReadOnly(repo.GetGoPath()) { readonly += 1 - // don't count these in any further stats - continue - } - // compute which GUI repos are out of sync with master - userV := repo.GetUserVersion() - develV := repo.GetDevelVersion() - masterV := repo.GetMasterVersion() - lastV := repo.GetLastTagVersion() - if userV != develV { - userT += 1 - } - if develV != masterV { - log.Info("develV != masterV", develV, masterV, repo.GetGoPath()) - develT += 1 - } - if masterV != lastV { - masterT += 1 + } else { + rw += 1 } } s.totalOL.SetText(strconv.Itoa(total) + " repos") - // s.totalGoOL.SetText(strconv.Itoa(totalgo) + " repos") s.dirtyOL.SetText(strconv.Itoa(dirty) + " repos") s.readonlyOL.SetText(strconv.Itoa(readonly) + " repos") + s.rw.SetText(fmt.Sprintf("%d repos", rw)) s.totalUserRepos.SetText(strconv.Itoa(userT) + " repos") - s.totalDevelRepos.SetText(strconv.Itoa(develT) + " repos") - s.totalMasterRepos.SetText(strconv.Itoa(masterT) + " repos") - - if dirty == 0 { - s.reason.Enable() - s.submitB.Enable() - // s.unknownOL.Enable() - // s.unknownSubmitB.Enable() - } else { - // s.reason.Disable() - s.submitB.Enable() - // s.unknownOL.Enable() - // s.unknownSubmitB.Enable() - } }