diff --git a/addRepo.go b/addRepo.go index 0d99c14..c09d1b1 100644 --- a/addRepo.go +++ b/addRepo.go @@ -75,64 +75,101 @@ func (r *RepoList) addRepo(grid *gui.Node, path string, master string, devel str newRepo.pLabel = grid.NewLabel(path).SetProgName("path") newRepo.lastTag = grid.NewLabel("").SetProgName("lastTag") newRepo.masterVersion = grid.NewLabel("").SetProgName("masterVersion") - newRepo.develVersion = grid.NewLabel("").SetProgName("develVersion") - newRepo.userVersion = grid.NewLabel("").SetProgName("userVersion") - newRepo.dirtyLabel = grid.NewLabel("") - newRepo.vLabel = grid.NewLabel("").SetProgName("current") - newRepo.endBox = grid.NewHorizontalBox("HBOX") - newRepo.endBox.NewButton("Configure", func() { - if newRepo.Status == nil { - // this should never happen, but it does happen because I'm not that smart and forget I can nil Status - // for some reason that makes sense in my head. again, I'm not that smart - log.Warn("status window wasn't created") - return - } - newRepo.Status.Toggle() - }) - - newRepo.endBox.NewButton("show diff", func() { - r.reposbox.Disable() - // newRepo.Status.XtermNohup([]string{"git diff"}) - newRepo.Status.Xterm("git diff; bash") - r.reposbox.Enable() - }) - - newRepo.endBox.NewButton("commit all", func() { - r.reposbox.Disable() - // restore anything staged so everything can be reviewed - newRepo.Status.RunCmd([]string{"git", "restore", "--staged", "."}) - newRepo.Status.XtermWait("git diff") - newRepo.Status.XtermWait("git add --all") - newRepo.Status.XtermWait("git commit -a") - newRepo.Status.XtermWait("git push") - if newRepo.Status.CheckDirty() { - // commit was not done, restore diff - newRepo.Status.RunCmd([]string{"git", "restore", "--staged", "."}) - } else { - newRepo.NewScan() - } - r.reposbox.Enable() - }) - newRepo.hidden = false - // newRepo.Status.SetMainWorkingName(master) - // newRepo.Status.SetDevelWorkingName(devel) - // newRepo.Status.SetUserWorkingName(user) - - var showBuildB bool = false - switch newRepo.Status.RepoType() { - case "binary": - // log.Info("compile here. Show()") - showBuildB = true - case "library": - // log.Info("library here. Hide()") - default: - // log.Info("unknown RepoType", newRepo.Status.RepoType()) - } - if showBuildB { - newRepo.endBox.NewButton("build", func() { - newRepo.Status.Build() + switch r.viewName { + case "autotypist": + newRepo.develVersion = grid.NewLabel("").SetProgName("develVersion") + newRepo.userVersion = grid.NewLabel("").SetProgName("userVersion") + newRepo.dirtyLabel = grid.NewLabel("") + newRepo.vLabel = grid.NewLabel("").SetProgName("current") + newRepo.endBox = grid.NewHorizontalBox("HBOX") + newRepo.endBox.NewButton("Configure", func() { + if newRepo.Status == nil { + // this should never happen, but it does happen because I'm not that smart and forget I can nil Status + // for some reason that makes sense in my head. again, I'm not that smart + log.Warn("status window wasn't created") + return + } + newRepo.Status.Toggle() }) + + newRepo.endBox.NewButton("show diff", func() { + r.reposbox.Disable() + // newRepo.Status.XtermNohup([]string{"git diff"}) + newRepo.Status.Xterm("git diff; bash") + r.reposbox.Enable() + }) + + newRepo.endBox.NewButton("commit all", func() { + r.reposbox.Disable() + // restore anything staged so everything can be reviewed + newRepo.Status.RunCmd([]string{"git", "restore", "--staged", "."}) + newRepo.Status.XtermWait("git diff") + newRepo.Status.XtermWait("git add --all") + newRepo.Status.XtermWait("git commit -a") + newRepo.Status.XtermWait("git push") + if newRepo.Status.CheckDirty() { + // commit was not done, restore diff + newRepo.Status.RunCmd([]string{"git", "restore", "--staged", "."}) + } else { + newRepo.NewScan() + } + r.reposbox.Enable() + }) + + // newRepo.Status.SetMainWorkingName(master) + // newRepo.Status.SetDevelWorkingName(devel) + // newRepo.Status.SetUserWorkingName(user) + + var showBuildB bool = false + switch newRepo.Status.RepoType() { + case "binary": + // log.Info("compile here. Show()") + showBuildB = true + case "library": + // log.Info("library here. Hide()") + default: + // log.Info("unknown RepoType", newRepo.Status.RepoType()) + } + if showBuildB { + newRepo.endBox.NewButton("build", func() { + newRepo.Status.Build() + }) + } + newRepo.goSumStatus = r.blind.NewLabel("in the blind") + case "guireleaser": + newRepo.develVersion = grid.NewLabel("").SetProgName("develVersion") + newRepo.userVersion = grid.NewLabel("").SetProgName("userVersion") + newRepo.dirtyLabel = grid.NewLabel("") + newRepo.vLabel = grid.NewLabel("").SetProgName("current") + newRepo.endBox = grid.NewHorizontalBox("HBOX") + newRepo.endBox.NewButton("Configure", func() { + if newRepo.Status == nil { + // this should never happen, but it does happen because I'm not that smart and forget I can nil Status + // for some reason that makes sense in my head. again, I'm not that smart + log.Warn("status window wasn't created") + return + } + newRepo.Status.Toggle() + }) + + var showBuildB bool = false + switch newRepo.Status.RepoType() { + case "binary": + // log.Info("compile here. Show()") + showBuildB = true + case "library": + // log.Info("library here. Hide()") + default: + // log.Info("unknown RepoType", newRepo.Status.RepoType()) + } + if showBuildB { + newRepo.endBox.NewButton("build", func() { + newRepo.Status.Build() + }) + } + newRepo.goSumStatus = r.blind.NewLabel("in the blind") + default: } grid.NextRow() diff --git a/structs.go b/structs.go index 49d826d..392934d 100644 --- a/structs.go +++ b/structs.go @@ -22,11 +22,15 @@ type RepoList struct { autoHidePerfect bool autoScan bool allrepos map[string]*Repo + viewName string // reposwin *gadgets.BasicWindow reposbox *gui.Node reposgrid *gui.Node reposgroup *gui.Node + + // put things here that can't be seen + blind *gui.Node } type Repo struct { diff --git a/viewAutotypist.go b/viewAutotypist.go index 9753bce..b549701 100644 --- a/viewAutotypist.go +++ b/viewAutotypist.go @@ -10,6 +10,7 @@ func AutotypistView(parent *gui.Node) *RepoList { } me = new(RepoList) me.allrepos = make(map[string]*Repo) + me.viewName = "autotypist" // me.reposbox = gui.RawBox() me.reposbox = parent @@ -25,5 +26,6 @@ func AutotypistView(parent *gui.Node) *RepoList { me.reposgrid.NewLabel("Status") me.reposgrid.NewLabel("Current Version").SetProgName("Current Version") me.reposgrid.NextRow() + me.blind = gui.RawBox() return me } diff --git a/viewGuiReleaser.go b/viewGuiReleaser.go new file mode 100644 index 0000000..b445eb9 --- /dev/null +++ b/viewGuiReleaser.go @@ -0,0 +1,30 @@ +package repolist + +import "go.wit.com/gui" + +// This creates a view of the repos +// you can only have one at this point +func GuireleaserView(parent *gui.Node) *RepoList { + if me != nil { + return me + } + me = new(RepoList) + me.allrepos = make(map[string]*Repo) + me.viewName = "guireleaser" + + // me.reposbox = gui.RawBox() + me.reposbox = parent + + me.reposgroup = me.reposbox.NewGroup("go repositories (configure in ~/.config/myrepolist)") + me.reposgrid = me.reposgroup.NewGrid("test", 0, 0) + + me.reposgrid.NewLabel("") // path goes here + me.reposgrid.NewLabel("last tag").SetProgName("last tag") + me.reposgrid.NewLabel("master version") + me.reposgrid.NewLabel("Status") + me.reposgrid.NewLabel("GO Status") + me.reposgrid.NewLabel("Current Version").SetProgName("Current Version") + me.reposgrid.NextRow() + me.blind = gui.RawBox() + return me +}