diff options
Diffstat (limited to 'windowPatches.go')
| -rw-r--r-- | windowPatches.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/windowPatches.go b/windowPatches.go index b23735b..b12a061 100644 --- a/windowPatches.go +++ b/windowPatches.go @@ -94,6 +94,24 @@ func makePatchesWin(patches *forgepb.Patches) *stdPatchTableWin { return dwin } +func applyPatchNew(p *forgepb.Patch) error { + rn := p.RepoNamespace + repo := me.forge.FindByGoPath(rn) + if repo == nil { + return fmt.Errorf("Could not figure out repo path %s", rn) + } + filename, err := savePatch(p) + if err != nil { + log.Info("savePatch() failed", err) + return err + } + if err := applyPatch(repo, filename); err != nil { + log.Info("warn user of git am error", err) + return err + } + return nil +} + func (dwin *stdPatchTableWin) doPatchesTable(currentPatches *forgepb.Patches) { dwin.Lock() defer dwin.Unlock() @@ -116,6 +134,18 @@ func AddPatchesPB(tbox *gui.Node, pb *forgepb.Patches) *forgepb.PatchesTable { t.NewUuid() t.SetParent(tbox) + gitam := t.AddButtonFunc("apply", func(p *forgepb.Patch) string { + return "git am" + }) + gitam.Custom = func(p *forgepb.Patch) { + if err := applyPatchNew(p); err != nil { + log.Info("git am failed on file", p.Filename, "with error", err) + return + } + log.Info("ran: git am", p.Filename, "ok") + } + + t.AddCommitHash() t.AddRepoNamespace() // t.AddFilename() t.AddStringFunc("file", func(p *forgepb.Patch) string { |
