diff options
Diffstat (limited to 'repolist.go')
| -rw-r--r-- | repolist.go | 156 |
1 files changed, 13 insertions, 143 deletions
diff --git a/repolist.go b/repolist.go index 54ae60e..6d0b3a3 100644 --- a/repolist.go +++ b/repolist.go @@ -13,7 +13,8 @@ import ( "go.wit.com/log" ) -func (r *repo) String() string { +// deprecate +func (r *repo) StringOld() string { return r.status.String() } @@ -44,7 +45,7 @@ func splitLine(line string) (string, string, string, string) { func myrepolist() []string { homeDir, _ := os.UserHomeDir() - cfgfile := filepath.Join(homeDir, ".config/myrepolist") + cfgfile := filepath.Join(homeDir, ".config/autotypist") content, _ := ioutil.ReadFile(cfgfile) out := string(content) out = strings.TrimSpace(out) @@ -52,141 +53,6 @@ func myrepolist() []string { return lines } -func (r *repo) Hide() { - r.pLabel.Hide() - r.lastTag.Hide() - r.vLabel.Hide() - - r.masterVersion.Hide() - r.develVersion.Hide() - r.userVersion.Hide() - - r.dirtyLabel.Hide() - r.endBox.Hide() - // r.statusButton.Hide() - // r.diffButton.Hide() - r.hidden = true -} - -func (r *repo) Hidden() bool { - return r.hidden -} - -func (r *repo) Show() { - r.pLabel.Show() - r.lastTag.Show() - r.vLabel.Show() - - r.masterVersion.Show() - r.develVersion.Show() - r.userVersion.Show() - - r.dirtyLabel.Show() - r.endBox.Show() - // r.statusButton.Show() - // r.diffButton.Show() - r.hidden = false -} - -func addRepo(grid *gui.Node, path string, master string, devel string, user string) { - _, ok := me.allrepos[path] - if ok { - log.Info("addRepo() already had path", path) - return - } - // log.Info("addRepo() attempting to add path", path) - - newRepo := new(repo) - - path = strings.TrimSuffix(path, "/") // trim any extranous '/' chars put in the config file by the user - if path == "" { - // just an empty line in the config file - return - } - - if strings.HasPrefix(path, "/") { - // this is a direct path. don't check if it is a golang repo - } else { - if repostatus.VerifyLocalGoRepo(path) { - // log.Verbose("newRepo actually exists", ) - } else { - // log.Warn("repostatus.VerifyLocalGoRepo() failed for for", path, master, devel, user) - return - } - } - - 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 { - log.Warn("status window wasn't created") - return - } - newRepo.status.Toggle() - }) - - newRepo.endBox.NewButton("show diff", func() { - me.reposwin.Disable() - // newRepo.status.XtermNohup([]string{"git diff"}) - newRepo.status.Xterm("git diff; bash") - me.reposwin.Enable() - }) - - newRepo.endBox.NewButton("commit all", func() { - me.reposwin.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.status.Update() - newRepo.newScan() - } - me.reposwin.Enable() - }) - - newRepo.status = repostatus.NewRepoStatusWindow(path) - 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() - }) - } - - me.allrepos[path] = newRepo -} - // This creates a window func repolistWindow() { me.reposwin = gadgets.NewBasicWindow(me.myGui, "All git repositories in ~/go/src/") @@ -232,7 +98,11 @@ func repolistWindow() { if ubranch == "" { ubranch = usr.Username } - addRepo(me.reposgrid, path, mbranch, dbranch, ubranch) + newrepo := addRepo(me.reposgrid, path, mbranch, dbranch, ubranch) + if newrepo != nil { + // assume repos from ~/.config/autotypist file might be modified + newrepo.status.Writable() + } me.reposgrid.NextRow() } @@ -279,7 +149,7 @@ func repoAllButtons(box *gui.Node) { box1 := hbox.Box().Vertical() box1.NewButton("status.Update() all", func() { for _, repo := range me.allrepos { - repo.status.Update() + repo.status.UpdateNew() repo.newScan() } }) @@ -352,14 +222,14 @@ func mergeAllDevelToMain() bool { continue } log.Info("found", repo.String(), repo.dirtyLabel.String()) - // repo.status.Update() + repo.status.UpdateNew() if repo.status.RunDevelMergeB() { log.Warn("THINGS SEEM OK fullAutomation() returned true.") } else { log.Warn("THINGS FAILED fullAutomation() returned false") return false } - repo.status.Update() + repo.status.UpdateNew() repo.newScan() } log.Warn("EVERYTHING WORKED") @@ -382,14 +252,14 @@ func mergeAllUserToDevel() bool { continue } log.Info("found", repo.String(), repo.dirtyLabel.String()) - // repo.status.Update() + repo.status.UpdateNew() if repo.status.RunDevelMergeB() { log.Warn("THINGS SEEM OK fullAutomation() returned true.") } else { log.Warn("THINGS FAILED fullAutomation() returned false") return false } - repo.status.Update() + repo.status.UpdateNew() repo.newScan() } log.Warn("EVERYTHING WORKED") |
