summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.go4
-rw-r--r--windowPatches.go59
-rw-r--r--windowPatchesSubmit.go39
-rw-r--r--windowViewPatchset.go2
4 files changed, 72 insertions, 32 deletions
diff --git a/main.go b/main.go
index e7b5056..085e14b 100644
--- a/main.go
+++ b/main.go
@@ -54,6 +54,10 @@ func main() {
if me.urlbase == "" {
me.urlbase = "https://go.wit.com/"
}
+ if os.Getenv("FORGE_URL") != "" {
+ me.urlbase = os.Getenv("FORGE_URL")
+ log.Info("got forge url", me.urlbase)
+ }
me.urlbase = strings.Trim(me.urlbase, "/") // track down why trailing '/' makes http POST not work
// load the ~/.config/forge/ config
diff --git a/windowPatches.go b/windowPatches.go
index decd2ab..9d6e35a 100644
--- a/windowPatches.go
+++ b/windowPatches.go
@@ -1,27 +1,24 @@
package main
import (
- "slices"
- "strings"
"sync"
"go.wit.com/lib/gadgets"
- "go.wit.com/lib/protobuf/forgepb"
"go.wit.com/log"
"go.wit.com/gui"
)
type patchesWindow struct {
- once sync.Once // only init() the window once
- win *gadgets.BasicWindow // the patches window
- stack *gui.Node // the top box set as vertical
- shelf *gui.Node // the first box in the stack, set as horizontal
- grid *gui.Node // the list of available patches
- summary *patchSummary // summary of current patches
- setgrid *gui.Node // the list of each patchset
- setlist map[string]*forgepb.Patchset // a map of the patch names to the protobuf
- setwin map[string]*patchWindow // a map of the patch names to the protobuf
+ once sync.Once // only init() the window once
+ win *gadgets.BasicWindow // the patches window
+ stack *gui.Node // the top box set as vertical
+ shelf *gui.Node // the first box in the stack, set as horizontal
+ grid *gui.Node // the list of available patches
+ summary *patchSummary // summary of current patches
+ setgrid *gui.Node // the list of each patchset
+ // setlist map[string]*forgepb.Patchset // a map of the patch names to the protobuf
+ // setwin map[string]*patchWindow // a map of the patch names to the protobuf
}
func (r *patchesWindow) Hidden() bool {
@@ -84,27 +81,30 @@ func (r *patchesWindow) initWindow() {
// add the grid
r.setgrid = g.NewGrid("", 0, 0)
- r.setlist = make(map[string]*forgepb.Patchset)
- r.setwin = make(map[string]*patchWindow)
+ /*
+ r.setlist = make(map[string]*forgepb.Patchset)
+ r.setwin = make(map[string]*patchWindow)
- // query for current patchsets
- lines, err := listPatches()
- if err != nil {
- log.Info(err)
- return
- }
- slices.Reverse(lines)
- count := 0
- for i, line := range lines {
- log.Info(i, line)
- count += 1
- if count < 10 {
- r.addPatchset(line)
+ // query for current patchsets
+ lines, err := listPatches()
+ if err != nil {
+ log.Info(err)
+ return
}
- }
- log.Info("Total patchsets:", count)
+ slices.Reverse(lines)
+ count := 0
+ for i, line := range lines {
+ log.Info(i, line)
+ count += 1
+ if count < 10 {
+ r.addPatchset(line)
+ }
+ }
+ log.Info("Total patchsets:", count)
+ */
}
+/*
func (r *patchesWindow) addPatchset(line string) {
parts := strings.Split(line, "Author:")
author := parts[1]
@@ -136,3 +136,4 @@ func (r *patchesWindow) addPatchset(line string) {
})
r.setgrid.NextRow()
}
+*/
diff --git a/windowPatchesSubmit.go b/windowPatchesSubmit.go
index 518e7e1..1aeea11 100644
--- a/windowPatchesSubmit.go
+++ b/windowPatchesSubmit.go
@@ -6,6 +6,7 @@ import (
"go.wit.com/gui"
"go.wit.com/lib/gadgets"
+ "go.wit.com/lib/protobuf/forgepb"
"go.wit.com/log"
)
@@ -81,8 +82,21 @@ func (r *patchesWindow) submitPatchesBox(box *gui.Node) *patchSummary {
log.Info(err)
return
}
- line := "somedate " + s.reason.String() + " Author: me" + pset.GitAuthorEmail
- me.patchWin.addPatchset(line)
+ // line := "somedate " + s.reason.String() + " Author: me" + pset.GitAuthorEmail
+ me.patchWin.addPatchsetNew(pset)
+ })
+ s.grid.NewButton("Get Patchsets", func() {
+ if psets, err := me.forge.GetPatchesets(); err != nil {
+ log.Info("Get Patchsets failed", err)
+ return
+ } else {
+ log.Info("got psets len", len(psets.Patchsets))
+ all := psets.All()
+ for all.Scan() {
+ pset := all.Next()
+ r.addPatchsetNew(pset)
+ }
+ }
})
// disable these until there are not dirty repos
@@ -92,6 +106,27 @@ func (r *patchesWindow) submitPatchesBox(box *gui.Node) *patchSummary {
return s
}
+func (r *patchesWindow) addPatchsetNew(pset *forgepb.Patchset) {
+ r.setgrid.NewLabel(pset.Name)
+ r.setgrid.NewLabel(pset.Comment)
+ r.setgrid.NewLabel(pset.GitAuthorName)
+
+ var win *patchWindow
+ r.setgrid.NewButton("View", func() {
+ // has the window already been created?
+ if win != nil {
+ // it has been already created. just show it
+ win.Toggle()
+ log.Info("TRYING TO TOGGLE WINDOW")
+ return
+ }
+
+ win = makePatchWindow(pset)
+ win.Show()
+ })
+ r.setgrid.NextRow()
+}
+
// does not run any commands
func (s *patchSummary) Update() {
var total, dirty, readonly, rw int
diff --git a/windowViewPatchset.go b/windowViewPatchset.go
index 3e4f374..24f17c7 100644
--- a/windowViewPatchset.go
+++ b/windowViewPatchset.go
@@ -132,7 +132,7 @@ func (r *patchWindow) addPatchset(grid *gui.Node, pset *forgepb.Patchset) {
s := p.RepoNamespace
repo := me.forge.FindByGoPath(s)
if repo == nil {
- log.Info("COULD NOT FIND", s)
+ log.Info("Could not figure out repo path", s)
continue
}
repomap[repo] = append(repomap[repo], p)