summaryrefslogtreecommitdiff
path: root/xterm.go
diff options
context:
space:
mode:
Diffstat (limited to 'xterm.go')
-rw-r--r--xterm.go45
1 files changed, 45 insertions, 0 deletions
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)
+ }
+}