diff --git a/flags.go b/flags.go index f4893e5..b71fbe4 100644 --- a/flags.go +++ b/flags.go @@ -9,12 +9,12 @@ import ( ) var REPO *log.LogFlag -var REPOWARN *log.LogFlag +var WARN *log.LogFlag func init() { full := "go.wit.com/lib/gui/repo" short := "repo" REPO = log.NewFlag("REPO", false, full, short, "general repo things") - REPOWARN = log.NewFlag("REPOWARN", true, full, short, "repo warnings") + WARN = log.NewFlag("REPOWARN", true, full, short, "repo warnings") } diff --git a/newRepo.go b/newRepo.go index 7f0a953..d0e5588 100644 --- a/newRepo.go +++ b/newRepo.go @@ -103,10 +103,10 @@ func (r *RepoList) AddRepo(pb *gitpb.Repo) (*RepoRow, error) { newRepo.endBox.NewButton("show diff", func() { r.reposbox.Disable() - log.Log(REPOWARN, "show diff currentName =", newRepo.currentName.String()) - log.Log(REPOWARN, "show diff masterVersion =", newRepo.masterVersion.String()) + log.Log(WARN, "show diff currentName =", newRepo.currentName.String()) + log.Log(WARN, "show diff masterVersion =", newRepo.masterVersion.String()) // newRepo.Status.XtermNohup([]string{"git diff"}) - newRepo.Status.Xterm("git diff; bash") + newRepo.Xterm("git diff; bash") r.reposbox.Enable() }) @@ -117,17 +117,17 @@ func (r *RepoList) AddRepo(pb *gitpb.Repo) (*RepoRow, error) { return } if !pb.IsUserBranch() { - log.Log(REPOWARN, "can not commit on non user branch") + log.Log(WARN, "can not commit on non user branch") return } r.reposbox.Disable() // restore anything staged so everything can be reviewed pb.RunRealtimeVerbose([]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") + newRepo.XtermWait("git diff") + newRepo.XtermWait("git add --all") + newRepo.XtermWait("git commit -a") + newRepo.XtermWait("git push") if newRepo.Status.CheckDirty() { // commit was not done, restore diff pb.RunRealtimeVerbose([]string{"git", "restore", "--staged", "."}) diff --git a/scan.go b/scan.go index c68828d..f13f83a 100644 --- a/scan.go +++ b/scan.go @@ -47,12 +47,12 @@ func (r *RepoRow) UpdatePb(newpb *gitpb.Repo) { func (r *RepoRow) NewScan() int { var changed int = 0 if r.Status == nil { - log.Log(REPOWARN, "repo.Status = nil. not initialized for some reason") + log.Log(WARN, "repo.Status = nil. not initialized for some reason") return changed } pb := r.pb if pb == nil { - log.Log(REPOWARN, "NewScan() pb = nil") + log.Log(WARN, "NewScan() pb = nil") return changed } diff --git a/watchdog.go b/watchdog.go index a14b33b..87a2141 100644 --- a/watchdog.go +++ b/watchdog.go @@ -34,7 +34,7 @@ func (r *RepoList) Watchdog(f func()) { } // print every 'delay' seconds if i%delay == 0 { - log.Log(REPOWARN, "Not auto scanning", i, "REPO_AUTO_SCAN =", os.Getenv("REPO_AUTO_SCAN")) + log.Log(WARN, "Not auto scanning", i, "REPO_AUTO_SCAN =", os.Getenv("REPO_AUTO_SCAN")) } return } diff --git a/xterm.go b/xterm.go new file mode 100644 index 0000000..9722209 --- /dev/null +++ b/xterm.go @@ -0,0 +1,45 @@ +package repolist + +import ( + "os" + "os/exec" + "strings" + + "go.wit.com/lib/gui/shell" + "go.wit.com/log" +) + +func (rs *RepoRow) XtermNohup(cmdline string) { + p := rs.pb.GetFullPath() + shell.XtermCmd(p, []string{cmdline}) +} +func (rs *RepoRow) Xterm(cmdline string) { + p := rs.pb.GetFullPath() + shell.XtermCmd(p, []string{cmdline}) +} +func (rs *RepoRow) XtermWait(cmdline string) { + p := rs.pb.GetFullPath() + shell.XtermCmdWait(p, []string{cmdline}) +} + +func (rs *RepoRow) XtermBash(args []string) { + var argsX = []string{"-geometry", "120x40"} + tmp := strings.Join(args, " ") + ";bash" + argsX = append(argsX, "-e", "bash", "-c", tmp) + argsX = append(argsX, args...) + log.Info("xterm cmd=", argsX) + // set less to not exit on small diff's + os.Setenv("LESS", "-+F -+X -R") + cmd := exec.Command("xterm", argsX...) + path := rs.pb.GetFullPath() + cmd.Dir = path + if err := cmd.Run(); err != nil { + log.Log(WARN, "xterm.Run() failed") + log.Log(WARN, "path =", path) + log.Log(WARN, "cmd = xterm", argsX) + } else { + log.Log(WARN, "xterm.Run() worked") + log.Log(WARN, "path =", path) + log.Log(WARN, "cmd = xterm", argsX) + } +}