allows patches to be applied
This commit is contained in:
parent
396161f6c1
commit
9e64b36566
Notes:
Jeff Carr
2025-02-09 16:21:40 -06:00
// `autogen:go.mod` module go.wit.com/apps/forge go 1.22 toolchain go1.23.4 require ( go.wit.com/dev/alexflint/arg v1.5.5 go.wit.com/gui v0.22.25 go.wit.com/lib/gadgets v0.22.8 go.wit.com/lib/gui/repolist v0.22.50 go.wit.com/lib/gui/shell v0.22.24 go.wit.com/lib/protobuf/forgepb v0.0.74 go.wit.com/lib/protobuf/gitpb v0.0.74 go.wit.com/log v0.22.11 ) require ( github.com/destel/rill v0.7.0 // indirect github.com/go-cmd/cmd v1.4.3 // indirect github.com/google/uuid v1.6.0 // indirect go.wit.com/dev/alexflint/scalar v1.2.4 // indirect go.wit.com/lib/gui/repostatus v0.22.44 // indirect go.wit.com/lib/protobuf/zoopb v0.0.24 // indirect go.wit.com/widget v1.1.28 // indirect google.golang.org/protobuf v1.36.5 // indirect ) // `autogen:go.sum` github.com/destel/rill v0.7.0 h1:LJUbeMACaO+/e8rUNk940kYVESD/dbrhAp6M14IjQ0c= github.com/destel/rill v0.7.0/go.mod h1:srKuXzvGqINUEGYR5b/iwvW+L9/S35RxVHWGYbXNoO4= github.com/go-cmd/cmd v1.4.3 h1:6y3G+3UqPerXvPcXvj+5QNPHT02BUw7p6PsqRxLNA7Y= github.com/go-cmd/cmd v1.4.3/go.mod h1:u3hxg/ry+D5kwh8WvUkHLAMe2zQCaXd00t35WfQaOFk= github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= go.wit.com/dev/alexflint/arg v1.5.5 h1:c4jgIb4OvHjnCMRNSjOa1sNLl6WDxV6tIkMVezR9hCk= go.wit.com/dev/alexflint/arg v1.5.5/go.mod h1:nH3F6TJDaAUgnLkC0WgRN/H047YfN1TYKaWPYr6B8lo= go.wit.com/dev/alexflint/scalar v1.2.4 h1:zmBeEkObwz1lcelwfGNYP2GS6SQ9e0tdv7JdHwMZEEk= go.wit.com/dev/alexflint/scalar v1.2.4/go.mod h1:kCNO1Fo5LnnK6+qa+zYhP5fdgfC1C+vx1ti99Md+FAM= go.wit.com/gui v0.22.25 h1:qncgoJtb4F5uPI/7SpmbqRB7I78pN5OziWmiSQr2TUE= go.wit.com/gui v0.22.25/go.mod h1:BPGaYNWRAvVGN+LwKtRUHwbhXyGRTOF0u7S5OMtwomA= go.wit.com/lib/gadgets v0.22.8 h1:oPR8/6y8nIv7lepuTgas7BJ2GzyZjDKAhSDS2ORxZRQ= go.wit.com/lib/gadgets v0.22.8/go.mod h1:lQNvWP5RNV9+qHLWStN/I9LfCDq9ZlH1IOKuuxPhoQA= go.wit.com/lib/gui/repolist v0.22.50 h1:nZnkqDXJFxfxSRUNiYw4B3GH81icpKSEKiywLUFBe1E= go.wit.com/lib/gui/repolist v0.22.50/go.mod h1:8jYeFmdm3njSB8IQF70D4UZygCW3mbKg1c+TCSL0O/4= go.wit.com/lib/gui/repostatus v0.22.44 h1:ACC5nGq/FQocAjNefk9FRJgfkiIwi/jevoYFvz4dNAw= go.wit.com/lib/gui/repostatus v0.22.44/go.mod h1:Q7YF/PpWXBjWgWlytnbItag9cPzC9SYay6jTX4jCqdA= go.wit.com/lib/gui/shell v0.22.24 h1:zfwOAOuTggaeHboaoH+pi5jn7rdXGqHgrRtHVbdFNRA= go.wit.com/lib/gui/shell v0.22.24/go.mod h1:/9FxkZ4KrpocGNOuig3+LyQHdjeobQ5NDBRo+WojZ6w= go.wit.com/lib/protobuf/forgepb v0.0.74 h1:ByrA7c9u3CaWEaAvDI6gx2nesRcGjxWIZWwlYzpJMT0= go.wit.com/lib/protobuf/forgepb v0.0.74/go.mod h1:bCJYrrqbjNHl2SAF4iUPsnj7B6LDIMHkmw2HjO8seHs= go.wit.com/lib/protobuf/gitpb v0.0.74 h1:Lj4ngu9PPQDaE4GX+H4DnJ1fR5+y5t8hnbYZHicgO/o= go.wit.com/lib/protobuf/gitpb v0.0.74/go.mod h1:OX8C4NJS/vHbbIU+oKHUwibGKKPJNqMYiWkYW/LxHEU= go.wit.com/lib/protobuf/zoopb v0.0.24 h1:lMQB5Tuuel5aFRUndh3eUPdljc9LE5MnFsERF3pST8A= go.wit.com/lib/protobuf/zoopb v0.0.24/go.mod h1:N0lOOVRrlOocrk+Basi8kJjg31Qlu55hqq0gEMLweLE= go.wit.com/log v0.22.11 h1:BiJe+S81kWrMqW1QyZVu1Es2d//WG9FAcZQEhZkkM4c= go.wit.com/log v0.22.11/go.mod h1:LsP0nAH4hZEf2qj/F5UmGQT0OEJ3Q5698/P8ZOI2JuE= go.wit.com/widget v1.1.28 h1:xBrJBJ/5qGXTRE2uyOEcCV+6xAq8+3kBgqsJc1kqkiM= go.wit.com/widget v1.1.28/go.mod h1:9P1d7NRtyFwEkMS3ccpTEyRqZaFnScbWvE4MB5ooeZI= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= // `autogen:`
|
@ -10,6 +10,7 @@ import (
|
|||
|
||||
"go.wit.com/lib/gadgets"
|
||||
"go.wit.com/lib/protobuf/forgepb"
|
||||
"go.wit.com/lib/protobuf/gitpb"
|
||||
"go.wit.com/log"
|
||||
|
||||
"go.wit.com/gui"
|
||||
|
@ -175,31 +176,21 @@ func (r *patchWindow) addPatchset(grid *gui.Node, pset *forgepb.Patchset) {
|
|||
if repo == nil {
|
||||
continue
|
||||
}
|
||||
var win *repoPatchWindow
|
||||
grid.NewButton("View", func() {
|
||||
if win != nil {
|
||||
win.Toggle()
|
||||
log.Info("TRYING TO TOGGLE WINDOW")
|
||||
return
|
||||
// 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()
|
||||
// win.Show()
|
||||
})
|
||||
grid.NewCheckbox("").SetChecked(true)
|
||||
grid.NewCheckbox("").SetChecked(true)
|
||||
grid.NewButton("save", func() {
|
||||
// savePatchset(p)
|
||||
/*
|
||||
for _, p := range patches {
|
||||
_, filen := filepath.Split(p.Filename)
|
||||
tmpname := filepath.Join("/tmp", filen)
|
||||
log.Info("saving as", tmpname, p.Filename)
|
||||
raw, _ := os.OpenFile(tmpname, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
|
||||
raw.Write(p.Data)
|
||||
raw.Close()
|
||||
}
|
||||
*/
|
||||
grid.NewButton("save patch to /tmp", func() {
|
||||
savePatch(p)
|
||||
// for _, pat := range patches {
|
||||
// }
|
||||
})
|
||||
/*
|
||||
grid.NewButton("view hash", func() {
|
||||
|
@ -215,6 +206,26 @@ func (r *patchWindow) addPatchset(grid *gui.Node, pset *forgepb.Patchset) {
|
|||
}
|
||||
}
|
||||
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue