mode windows
This commit is contained in:
parent
9ccc3d0470
commit
10a1741bd9
|
@ -38,7 +38,7 @@ func (args) doBashAuto() {
|
||||||
case "delete":
|
case "delete":
|
||||||
deleteMatch()
|
deleteMatch()
|
||||||
case "dirty":
|
case "dirty":
|
||||||
fmt.Println("--verbose")
|
fmt.Println("")
|
||||||
case "examine":
|
case "examine":
|
||||||
fmt.Println("fix")
|
fmt.Println("fix")
|
||||||
case "list":
|
case "list":
|
||||||
|
|
287
doGui.go
287
doGui.go
|
@ -22,37 +22,48 @@ import (
|
||||||
func debug() {
|
func debug() {
|
||||||
time.Sleep(2 * time.Second)
|
time.Sleep(2 * time.Second)
|
||||||
for {
|
for {
|
||||||
var found *gitpb.Repos
|
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
tmp := fmt.Sprintf("All (%d)", me.forge.Repos.Len())
|
if me.repoAllB == nil {
|
||||||
me.repoAllB.SetLabel(tmp)
|
log.Printf("finished empty forge scan here in (%s)\n", shell.FormatDuration(time.Since(now)))
|
||||||
|
time.Sleep(90 * time.Second)
|
||||||
found = findMergeToDevel()
|
continue
|
||||||
tmp = fmt.Sprintf("needs merge to devel (%d)", found.Len())
|
}
|
||||||
me.repoDevelMergeB.SetLabel(tmp)
|
if me.repoAllB != nil {
|
||||||
|
tmp := fmt.Sprintf("All (%d)", me.forge.Repos.Len())
|
||||||
found = gitpb.NewRepos()
|
me.repoAllB.SetLabel(tmp)
|
||||||
all := me.forge.Repos.SortByFullPath()
|
|
||||||
for all.Scan() {
|
|
||||||
repo := all.Next()
|
|
||||||
if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
found.AppendByGoPath(repo)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
tmp = fmt.Sprintf("writable (%d)", found.Len())
|
|
||||||
me.repoWritableB.SetLabel(tmp)
|
|
||||||
|
|
||||||
doCheckDirtyAndConfigSave()
|
if me.repoDevelMergeB != nil {
|
||||||
found = findDirty()
|
found := findMergeToDevel()
|
||||||
tmp = fmt.Sprintf("dirty (%d)", found.Len())
|
tmp := fmt.Sprintf("needs merge to devel (%d)", found.Len())
|
||||||
me.repoDirtyB.SetLabel(tmp)
|
me.repoDevelMergeB.SetLabel(tmp)
|
||||||
|
}
|
||||||
|
|
||||||
|
if me.repoWritableB != nil {
|
||||||
|
found := gitpb.NewRepos()
|
||||||
|
all := me.forge.Repos.SortByFullPath()
|
||||||
|
for all.Scan() {
|
||||||
|
repo := all.Next()
|
||||||
|
if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
found.AppendByGoPath(repo)
|
||||||
|
|
||||||
|
}
|
||||||
|
tmp := fmt.Sprintf("writable (%d)", found.Len())
|
||||||
|
me.repoWritableB.SetLabel(tmp)
|
||||||
|
}
|
||||||
|
|
||||||
|
if me.repoDirtyB != nil {
|
||||||
|
doCheckDirtyAndConfigSave()
|
||||||
|
found := findDirty()
|
||||||
|
tmp := fmt.Sprintf("dirty (%d)", found.Len())
|
||||||
|
me.repoDirtyB.SetLabel(tmp)
|
||||||
|
}
|
||||||
|
|
||||||
log.Printf("finished a forge scan here in (%s)\n", shell.FormatDuration(time.Since(now)))
|
log.Printf("finished a forge scan here in (%s)\n", shell.FormatDuration(time.Since(now)))
|
||||||
time.Sleep(90 * time.Second)
|
time.Sleep(90 * time.Second)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,6 +221,109 @@ func drawWindow(win *gadgets.BasicWindow) {
|
||||||
grid.NewButton("git pull", func() {
|
grid.NewButton("git pull", func() {
|
||||||
log.Info("todo: run git pull on each repo")
|
log.Info("todo: run git pull on each repo")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
me.repoDevelMergeB = grid.NewButton("merge", func() {
|
||||||
|
found := findMergeToDevel()
|
||||||
|
_, box := makeStandardReposWindow("repos to merge from user to devel", found)
|
||||||
|
hbox := box.Box().Horizontal()
|
||||||
|
hbox.NewButton("merge all", func() {
|
||||||
|
win.Disable()
|
||||||
|
defer win.Enable()
|
||||||
|
all := found.SortByFullPath()
|
||||||
|
for all.Scan() {
|
||||||
|
repo := all.Next()
|
||||||
|
if repo.CheckDirty() {
|
||||||
|
log.Info("repo is dirty", repo.GetGoPath())
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
log.Info("Starting merge on", repo.GetGoPath())
|
||||||
|
if repo.CheckoutDevel() {
|
||||||
|
log.Info("checkout devel failed", repo.GetGoPath())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if _, err := repo.MergeToDevel(); err != nil {
|
||||||
|
log.Info("merge from user failed", repo.GetGoPath(), err)
|
||||||
|
// log.Info(strings.Join(r.Stdout, "\n"))
|
||||||
|
// log.Info(strings.Join(r.Stderr, "\n"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if repo.CheckoutMaster() {
|
||||||
|
log.Info("checkout master failed", repo.GetGoPath())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if _, err := repo.MergeToMaster(); err != nil {
|
||||||
|
log.Info("merge from devel failed", repo.GetGoPath(), err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
var problemsWin *repoProblemsWindow
|
||||||
|
grid.NewButton("Repo Problems", func() {
|
||||||
|
if problemsWin != nil {
|
||||||
|
problemsWin.Toggle()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
problemsWin = makeRepoProblemsWindow()
|
||||||
|
})
|
||||||
|
grid.NextRow()
|
||||||
|
|
||||||
|
// grid := hackWin.Group.RawGrid()
|
||||||
|
group2 := hackWin.Stack.NewGroup("Merge")
|
||||||
|
grid = group2.RawGrid()
|
||||||
|
|
||||||
|
grid.NewButton("merge to devel", func() {
|
||||||
|
win.Disable()
|
||||||
|
defer win.Enable()
|
||||||
|
|
||||||
|
mergeUserToDevel(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
grid.NewButton("merge to master", func() {
|
||||||
|
win.Disable()
|
||||||
|
defer win.Enable()
|
||||||
|
|
||||||
|
mergeDevelToMaster(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
grid.NewButton("merge all", func() {
|
||||||
|
win.Disable()
|
||||||
|
defer win.Enable()
|
||||||
|
|
||||||
|
me.argvCheckoutUser = false
|
||||||
|
me.argvCheckoutDevel = true
|
||||||
|
me.argvCheckoutMaster = false
|
||||||
|
if err := doCheckoutShared(); err != nil {
|
||||||
|
log.Info("checkout error:", err)
|
||||||
|
} else {
|
||||||
|
log.Info("checkout was ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
mergeUserToDevel(true)
|
||||||
|
|
||||||
|
me.argvCheckoutUser = false
|
||||||
|
me.argvCheckoutDevel = false
|
||||||
|
me.argvCheckoutMaster = true
|
||||||
|
if err := doCheckoutShared(); err != nil {
|
||||||
|
log.Info("checkout error:", err)
|
||||||
|
} else {
|
||||||
|
log.Info("checkout was ok")
|
||||||
|
}
|
||||||
|
|
||||||
|
mergeDevelToMaster(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
group3 := hackWin.Stack.NewGroup("work in progress")
|
||||||
|
grid = group3.RawGrid()
|
||||||
|
|
||||||
|
grid.NewButton("forge ConfigSave()", func() {
|
||||||
|
me.forge.ConfigSave()
|
||||||
|
})
|
||||||
|
|
||||||
|
grid.NewButton("debugger()", func() {
|
||||||
|
debugger.DebugWindow()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
grid.NextRow()
|
grid.NextRow()
|
||||||
|
|
||||||
|
@ -270,121 +384,6 @@ func drawWindow(win *gadgets.BasicWindow) {
|
||||||
makeStandardReposWindow("All repos", me.found)
|
makeStandardReposWindow("All repos", me.found)
|
||||||
})
|
})
|
||||||
|
|
||||||
me.repoDevelMergeB = grid.NewButton("merge", func() {
|
|
||||||
found := findMergeToDevel()
|
|
||||||
_, box := makeStandardReposWindow("repos to merge from user to devel", found)
|
|
||||||
hbox := box.Box().Horizontal()
|
|
||||||
hbox.NewButton("merge all", func() {
|
|
||||||
win.Disable()
|
|
||||||
defer win.Enable()
|
|
||||||
all := found.SortByFullPath()
|
|
||||||
for all.Scan() {
|
|
||||||
repo := all.Next()
|
|
||||||
if repo.CheckDirty() {
|
|
||||||
log.Info("repo is dirty", repo.GetGoPath())
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
log.Info("Starting merge on", repo.GetGoPath())
|
|
||||||
if repo.CheckoutDevel() {
|
|
||||||
log.Info("checkout devel failed", repo.GetGoPath())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if _, err := repo.MergeToDevel(); err != nil {
|
|
||||||
log.Info("merge from user failed", repo.GetGoPath(), err)
|
|
||||||
// log.Info(strings.Join(r.Stdout, "\n"))
|
|
||||||
// log.Info(strings.Join(r.Stderr, "\n"))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if repo.CheckoutMaster() {
|
|
||||||
log.Info("checkout master failed", repo.GetGoPath())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if _, err := repo.MergeToMaster(); err != nil {
|
|
||||||
log.Info("merge from devel failed", repo.GetGoPath(), err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
var problemsWin *repoProblemsWindow
|
|
||||||
grid.NewButton("Repo Problems", func() {
|
|
||||||
if problemsWin != nil {
|
|
||||||
problemsWin.Toggle()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
problemsWin = makeRepoProblemsWindow()
|
|
||||||
})
|
|
||||||
grid.NextRow()
|
|
||||||
|
|
||||||
group2 = vbox.NewGroup("Merge")
|
|
||||||
grid = group2.RawGrid()
|
|
||||||
|
|
||||||
grid.NewButton("merge to devel", func() {
|
|
||||||
win.Disable()
|
|
||||||
defer win.Enable()
|
|
||||||
|
|
||||||
mergeUserToDevel(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
grid.NewButton("merge to master", func() {
|
|
||||||
win.Disable()
|
|
||||||
defer win.Enable()
|
|
||||||
|
|
||||||
mergeDevelToMaster(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
grid.NewButton("merge all", func() {
|
|
||||||
win.Disable()
|
|
||||||
defer win.Enable()
|
|
||||||
|
|
||||||
me.argvCheckoutUser = false
|
|
||||||
me.argvCheckoutDevel = true
|
|
||||||
me.argvCheckoutMaster = false
|
|
||||||
if err := doCheckoutShared(); err != nil {
|
|
||||||
log.Info("checkout error:", err)
|
|
||||||
} else {
|
|
||||||
log.Info("checkout was ok")
|
|
||||||
}
|
|
||||||
|
|
||||||
mergeUserToDevel(true)
|
|
||||||
|
|
||||||
me.argvCheckoutUser = false
|
|
||||||
me.argvCheckoutDevel = false
|
|
||||||
me.argvCheckoutMaster = true
|
|
||||||
if err := doCheckoutShared(); err != nil {
|
|
||||||
log.Info("checkout error:", err)
|
|
||||||
} else {
|
|
||||||
log.Info("checkout was ok")
|
|
||||||
}
|
|
||||||
|
|
||||||
mergeDevelToMaster(true)
|
|
||||||
})
|
|
||||||
|
|
||||||
group3 := vbox.NewGroup("work in progress")
|
|
||||||
grid = group3.RawGrid()
|
|
||||||
|
|
||||||
grid.NewButton("forge ConfigSave()", func() {
|
|
||||||
me.forge.ConfigSave()
|
|
||||||
})
|
|
||||||
|
|
||||||
grid.NewButton("debugger()", func() {
|
|
||||||
debugger.DebugWindow()
|
|
||||||
})
|
|
||||||
|
|
||||||
/*
|
|
||||||
var patchWin *patchesWindow
|
|
||||||
|
|
||||||
grid.NewButton("Patches Window", func() {
|
|
||||||
if patchWin != nil {
|
|
||||||
patchWin.Toggle()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
patchWin = new(patchesWindow)
|
|
||||||
patchWin.initWindow()
|
|
||||||
patchWin.Show()
|
|
||||||
})
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// sets the text in the labels in the window
|
// sets the text in the labels in the window
|
||||||
|
@ -425,9 +424,11 @@ func forgeSwitchMode(newMode forgepb.ForgeMode) {
|
||||||
me.modeUserW.Enable()
|
me.modeUserW.Enable()
|
||||||
}
|
}
|
||||||
|
|
||||||
if me.forge.Config.Mode != forgepb.ForgeMode_USER {
|
/*
|
||||||
doDisableUserW()
|
if me.forge.Config.Mode != forgepb.ForgeMode_USER {
|
||||||
}
|
doDisableUserW()
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
me.forge.SetConfigSave(true)
|
me.forge.SetConfigSave(true)
|
||||||
me.forge.ConfigSave()
|
me.forge.ConfigSave()
|
||||||
|
|
Loading…
Reference in New Issue