rm old code
This commit is contained in:
parent
391a988e5f
commit
1b145d1f04
|
@ -132,83 +132,10 @@ func (r *patchesWindow) submitPatchesBox() {
|
||||||
// r.addPatchsetNew(pset)
|
// r.addPatchsetNew(pset)
|
||||||
})
|
})
|
||||||
|
|
||||||
psets, err := openPatchsets()
|
|
||||||
if err != nil {
|
|
||||||
log.Info("Open Patchsets failed", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
grid.NewButton("Update Patchset List", func() {
|
|
||||||
psets, err = me.forge.GetPatchesets()
|
|
||||||
if err != nil {
|
|
||||||
log.Info("Get Patchsets failed", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
savePatchsets(psets)
|
|
||||||
|
|
||||||
/*
|
|
||||||
log.Info("got psets len", len(psets.Patchsets))
|
|
||||||
all := psets.SortByName()
|
|
||||||
for all.Scan() {
|
|
||||||
pset := all.Next()
|
|
||||||
r.addPatchsetNew(pset)
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
})
|
|
||||||
|
|
||||||
// disables the submit button until the user enters a name
|
// disables the submit button until the user enters a name
|
||||||
r.submitB.Disable()
|
r.submitB.Disable()
|
||||||
grid.NextRow()
|
grid.NextRow()
|
||||||
|
|
||||||
g := r.stack.NewGroup("Patchset List")
|
|
||||||
// add the grid
|
|
||||||
r.psetgrid = g.RawGrid()
|
|
||||||
|
|
||||||
// will look in ~/.config/forge for an existing patchset file
|
|
||||||
// attempt to read in patchsets saved on disk
|
|
||||||
|
|
||||||
if psets != nil {
|
|
||||||
log.Info("got psets len", len(psets.Patchsets))
|
|
||||||
/*
|
|
||||||
all := psets.SortByName()
|
|
||||||
for all.Scan() {
|
|
||||||
pset := all.Next()
|
|
||||||
log.Info("pset name =", pset.Name)
|
|
||||||
r.addPatchsetNew(pset)
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
func (r *patchesWindow) addPatchsetNew(pset *forgepb.Patchset) {
|
|
||||||
var win *patchWindow
|
|
||||||
r.psetgrid.NewButton("View", func() {
|
|
||||||
// has the window already been created?
|
|
||||||
if win != nil {
|
|
||||||
win.Toggle()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// win = makePatchWindow(pset)
|
|
||||||
// win.Show()
|
|
||||||
})
|
|
||||||
r.psetgrid.NewLabel(pset.Name)
|
|
||||||
r.psetgrid.NewLabel(pset.Comment)
|
|
||||||
r.psetgrid.NewLabel(pset.GitAuthorName)
|
|
||||||
r.psetgrid.NewLabel(pset.Uuid)
|
|
||||||
|
|
||||||
ctime := pset.Ctime.AsTime()
|
|
||||||
stime := ctime.UTC().Format("2006-01-02_15:04:05_UTC")
|
|
||||||
r.psetgrid.NewLabel(stime)
|
|
||||||
if pset.State == "BROKEN" {
|
|
||||||
r.psetgrid.NewLabel("Bad")
|
|
||||||
} else {
|
|
||||||
r.psetgrid.NewLabel("Good")
|
|
||||||
}
|
|
||||||
|
|
||||||
r.psetgrid.NextRow()
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// will update this from the current state of the protobuf
|
// will update this from the current state of the protobuf
|
||||||
func (r *patchesWindow) Update() {
|
func (r *patchesWindow) Update() {
|
||||||
|
|
|
@ -39,7 +39,7 @@ func makePatchsetsWin() *stdPatchsetTableWin {
|
||||||
}
|
}
|
||||||
grid := dwin.win.Group.RawGrid()
|
grid := dwin.win.Group.RawGrid()
|
||||||
|
|
||||||
grid.NewButton("reload current patches", func() {
|
grid.NewButton("reload", func() {
|
||||||
psets, err := me.forge.GetPatchesets()
|
psets, err := me.forge.GetPatchesets()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Info("Get Patchsets failed", err)
|
log.Info("Get Patchsets failed", err)
|
||||||
|
@ -118,8 +118,9 @@ func AddPatchsetsPB(tbox *gui.Node, pb *forgepb.Patchsets) *forgepb.PatchsetsTab
|
||||||
})
|
})
|
||||||
vp.Custom = func(pset *forgepb.Patchset) {
|
vp.Custom = func(pset *forgepb.Patchset) {
|
||||||
log.Info("show patches here", pset.Name)
|
log.Info("show patches here", pset.Name)
|
||||||
patchwin := makePatchesWin()
|
makePatchesWin(pset.Patches)
|
||||||
patchwin.doPatchesTable(pset.Patches)
|
// patchwin := makePatchesWin()
|
||||||
|
// patchwin.doPatchesTable(pset.Patches)
|
||||||
/*
|
/*
|
||||||
win := makePatchWindow(pset)
|
win := makePatchWindow(pset)
|
||||||
win.Show()
|
win.Show()
|
||||||
|
|
|
@ -30,7 +30,7 @@ func (w *stdPatchTableWin) Toggle() {
|
||||||
w.win.Toggle()
|
w.win.Toggle()
|
||||||
}
|
}
|
||||||
|
|
||||||
func makePatchesWin() *stdPatchTableWin {
|
func makePatchesWin(p *forgepb.Patches) *stdPatchTableWin {
|
||||||
dwin := new(stdPatchTableWin)
|
dwin := new(stdPatchTableWin)
|
||||||
dwin.win = gadgets.NewGenericWindow("current patches", "patching options")
|
dwin.win = gadgets.NewGenericWindow("current patches", "patching options")
|
||||||
dwin.win.Custom = func() {
|
dwin.win.Custom = func() {
|
||||||
|
@ -39,12 +39,28 @@ func makePatchesWin() *stdPatchTableWin {
|
||||||
}
|
}
|
||||||
grid := dwin.win.Group.RawGrid()
|
grid := dwin.win.Group.RawGrid()
|
||||||
|
|
||||||
|
grid.NewLabel(fmt.Sprintf("%d", p.Len())
|
||||||
|
grid.NewLabel(fmt.Sprintf("total patches")
|
||||||
|
grid.NextRow()
|
||||||
|
|
||||||
|
all := p.All()
|
||||||
|
for all.Scan() {
|
||||||
|
repo := all.Next()
|
||||||
|
}
|
||||||
|
grid.NewLabel(fmt.Sprintf("%d", p.Len())
|
||||||
|
grid.NewLabel(fmt.Sprintf("total repos")
|
||||||
|
grid.NextRow()
|
||||||
|
|
||||||
grid.NewButton("reload", func() {
|
grid.NewButton("reload", func() {
|
||||||
})
|
})
|
||||||
|
|
||||||
// make a box at the bottom of the window for the protobuf table
|
// make a box at the bottom of the window for the protobuf table
|
||||||
dwin.box = dwin.win.Bottom.Box().SetProgName("TBOX")
|
dwin.box = dwin.win.Bottom.Box().SetProgName("TBOX")
|
||||||
|
|
||||||
|
if p != nil {
|
||||||
|
dwin.doPatchesTable(p)
|
||||||
|
}
|
||||||
|
|
||||||
return dwin
|
return dwin
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,211 +0,0 @@
|
||||||
// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
|
|
||||||
// Use of this source code is governed by the GPL 3.0
|
|
||||||
|
|
||||||
package main
|
|
||||||
|
|
||||||
/*
|
|
||||||
type patchWindow 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
|
|
||||||
pset *forgepb.Patchset // the patchset in question
|
|
||||||
}
|
|
||||||
|
|
||||||
// todo: autogenerate these or make them standared 'gui' package functions
|
|
||||||
// make this an go interface somehow
|
|
||||||
|
|
||||||
// is the window hidden right now?
|
|
||||||
func (w *patchWindow) Hidden() bool {
|
|
||||||
return w.win.Hidden()
|
|
||||||
}
|
|
||||||
|
|
||||||
// switches between the window being visable or hidden on the desktop
|
|
||||||
func (w *patchWindow) Toggle() {
|
|
||||||
if w.Hidden() {
|
|
||||||
w.Show()
|
|
||||||
} else {
|
|
||||||
w.Hide()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// hides the window completely
|
|
||||||
func (w *patchWindow) Show() {
|
|
||||||
w.win.Show()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (w *patchWindow) Hide() {
|
|
||||||
w.win.Hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
// should be the first box/widget in the window
|
|
||||||
// greys out the window to the user
|
|
||||||
func (w *patchWindow) Disable() {
|
|
||||||
w.stack.Disable()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (w *patchWindow) Enable() {
|
|
||||||
w.stack.Enable()
|
|
||||||
}
|
|
||||||
|
|
||||||
// you can only have one of these
|
|
||||||
func makePatchWindow(pset *forgepb.Patchset) *patchWindow {
|
|
||||||
pw := new(patchWindow)
|
|
||||||
|
|
||||||
// sync.Once()
|
|
||||||
pw.win = gadgets.RawBasicWindow("Patcheset for " + pset.Name + " (" + pset.Comment + ")")
|
|
||||||
pw.win.Make()
|
|
||||||
|
|
||||||
pw.stack = pw.win.Box().NewBox("bw vbox", false)
|
|
||||||
// me.reposwin.Draw()
|
|
||||||
pw.win.Custom = func() {
|
|
||||||
// sets the hidden flag to false so Toggle() works
|
|
||||||
pw.win.Hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
grid := pw.stack.NewGrid("", 0, 0)
|
|
||||||
|
|
||||||
grid.NewLabel("Patchset Details:")
|
|
||||||
grid.NewLabel(pset.GitAuthorName)
|
|
||||||
grid.NewLabel(pset.GitAuthorEmail)
|
|
||||||
grid.NewLabel("start branch: " + pset.StartBranchName)
|
|
||||||
grid.NewLabel(pset.StartBranchHash)
|
|
||||||
grid.NewLabel("end branch: " + pset.EndBranchName)
|
|
||||||
grid.NewLabel(pset.EndBranchHash)
|
|
||||||
grid.NewButton("Apply All", func() {
|
|
||||||
var count int
|
|
||||||
all := pset.Patches.SortByFilename()
|
|
||||||
for all.Scan() {
|
|
||||||
p := all.Next()
|
|
||||||
rn := p.RepoNamespace
|
|
||||||
repo := me.forge.FindByGoPath(rn)
|
|
||||||
if repo == nil {
|
|
||||||
log.Info("Could not figure out repo path", rn)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
filename, err := savePatch(p)
|
|
||||||
if err != nil {
|
|
||||||
log.Info("savePatch() failed", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
count += 1
|
|
||||||
if err := applyPatch(repo, filename); err != nil {
|
|
||||||
log.Info("warn user of git am error", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
log.Info("ALL PATCHES WORKED! count =", count)
|
|
||||||
})
|
|
||||||
grid.NextRow()
|
|
||||||
|
|
||||||
g := pw.stack.NewGroup("PatchSet List")
|
|
||||||
|
|
||||||
// make a grid to put the list of git repos that have patches
|
|
||||||
// in this particular patchset
|
|
||||||
grid = g.NewGrid("", 0, 0)
|
|
||||||
grid.NewLabel("repo")
|
|
||||||
grid.NewLabel("patch name")
|
|
||||||
grid.NewLabel("Applied in current branch?")
|
|
||||||
grid.NewLabel("start hash")
|
|
||||||
grid.NewLabel("")
|
|
||||||
grid.NextRow()
|
|
||||||
|
|
||||||
// add the patches to the grid
|
|
||||||
pw.addPatchset(grid, pset)
|
|
||||||
return pw
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *patchWindow) addPatchset(grid *gui.Node, pset *forgepb.Patchset) {
|
|
||||||
all := pset.Patches.SortByFilename()
|
|
||||||
for all.Scan() {
|
|
||||||
p := all.Next()
|
|
||||||
// for repo, patches := range repomap {
|
|
||||||
rn := p.RepoNamespace
|
|
||||||
repo := me.forge.FindByGoPath(rn)
|
|
||||||
if repo == nil {
|
|
||||||
log.Info("Could not figure out repo path", rn)
|
|
||||||
rn += " bad repo"
|
|
||||||
}
|
|
||||||
log.Info("Adding patches for", rn)
|
|
||||||
grid.NewLabel(rn)
|
|
||||||
|
|
||||||
// hash := repohash[repo]
|
|
||||||
grid.NewLabel(p.StartHash)
|
|
||||||
grid.NewLabel(p.Filename)
|
|
||||||
|
|
||||||
if repo == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
// var win *repoPatchWindow
|
|
||||||
grid.NewButton("apply", func() {
|
|
||||||
filename, _ := savePatch(p)
|
|
||||||
if err := applyPatch(repo, filename); err != nil {
|
|
||||||
log.Info("warn user of git am error", err)
|
|
||||||
}
|
|
||||||
// win = makeRepoPatchWindow(repo, p)
|
|
||||||
// win.Show()
|
|
||||||
})
|
|
||||||
grid.NewCheckbox("").SetChecked(true)
|
|
||||||
grid.NewCheckbox("").SetChecked(true)
|
|
||||||
grid.NewButton("save patch to /tmp", func() {
|
|
||||||
savePatch(p)
|
|
||||||
// for _, pat := range patches {
|
|
||||||
// }
|
|
||||||
})
|
|
||||||
grid.NextRow()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func applyPatch(repo *gitpb.Repo, filename string) error {
|
|
||||||
cmd := []string{"git", "am", filename}
|
|
||||||
err := repo.RunVerbose(cmd)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func savePatch(p *forgepb.Patch) (string, error) {
|
|
||||||
_, filen := filepath.Split(p.Filename)
|
|
||||||
tmpname := filepath.Join("/tmp", filen)
|
|
||||||
log.Info("saving as", tmpname, p.Filename)
|
|
||||||
raw, err := os.OpenFile(tmpname, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
raw.Write(p.Data)
|
|
||||||
raw.Close()
|
|
||||||
|
|
||||||
return tmpname, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// saves the patches in ~/.config/forge/currentpatches/
|
|
||||||
func savePatchset(pset *forgepb.Patchset) error {
|
|
||||||
log.Info("savePatches() NAME", pset.Name)
|
|
||||||
log.Info("savePatches() COMMENT", pset.Comment)
|
|
||||||
log.Info("savePatches() GIT_AUTHOR_NAME", pset.GetGitAuthorName())
|
|
||||||
log.Info("savePatches() GIT_AUTHOR_EMAIL", pset.GetGitAuthorEmail())
|
|
||||||
log.Info("savePatches() Branch Name", pset.GetStartBranchName())
|
|
||||||
log.Info("savePatches() Start Hash", pset.GetStartBranchHash())
|
|
||||||
|
|
||||||
var count int
|
|
||||||
var bad int
|
|
||||||
var lasterr error
|
|
||||||
all := pset.Patches.SortByFilename()
|
|
||||||
for all.Scan() {
|
|
||||||
p := all.Next()
|
|
||||||
basedir := filepath.Join(os.Getenv("FORGE_CONFIG"), "currentpatches")
|
|
||||||
if fullname, err := savePatchFile(p, basedir); err != nil {
|
|
||||||
log.Info(fullname, "save failed", err)
|
|
||||||
bad += 1
|
|
||||||
lasterr = err
|
|
||||||
}
|
|
||||||
count += 1
|
|
||||||
}
|
|
||||||
log.Info("pset has", count, "total patches, ", bad, "bad save patches")
|
|
||||||
if bad == 0 {
|
|
||||||
return lasterr
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
*/
|
|
Loading…
Reference in New Issue