summaryrefslogtreecommitdiff
path: root/unix.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-02-15 22:50:50 -0600
committerJeff Carr <[email protected]>2024-02-15 22:50:50 -0600
commit2bc2096e841f3b262563126feb8a7a4c2b66f090 (patch)
treea940a0200555f1a75096cdc1895246ed46ffb159 /unix.go
parente6eb92845ace066aa36c8730d28c3e53fe6bdca8 (diff)
xterm fixes
also a i18n syntax idea show all tags in the main window
Diffstat (limited to 'unix.go')
-rw-r--r--unix.go78
1 files changed, 49 insertions, 29 deletions
diff --git a/unix.go b/unix.go
index 903adba..7e295e8 100644
--- a/unix.go
+++ b/unix.go
@@ -119,6 +119,11 @@ func splitVersion(version string) (a, b, c string) {
}
}
+func (rs *RepoStatus) RunCmdEcho(parts []string) (error, string) {
+ log.Info("RunCmdEcho()", parts)
+ return rs.RunCmd(parts)
+}
+
func (rs *RepoStatus) RunCmd(parts []string) (error, string) {
path := rs.realPath.String()
err, _, output := shell.RunCmd(path, parts)
@@ -269,22 +274,23 @@ func readFileToString(filename string) (string, error) {
return strings.TrimSpace(string(data)), nil
}
-func getDateStamp(raw string) (string, string) {
+func getDateStamp(raw string) (time.Time, string, string) {
parts := strings.Split(raw, " ")
if len(parts) == 0 {
// raw was blank here
- return "Jan 4 1977", "40y" // eh, why not. it'll be easy to grep for this
+ // return "Jan 4 1977", "40y" // eh, why not. it'll be easy to grep for this
+ return time.Now(), "Jan 4 1977", "40y" // eh, why not. it'll be easy to grep for this
}
i, err := strconv.ParseInt(parts[0], 10, 64) // base 10 string, return int64
if err != nil {
log.Warn("Error converting timestamp:", raw)
log.Warn("Error converting timestamp err =", err)
- return raw, ""
+ return time.Now(), "", ""
}
// Parse the Unix timestamp into a time.Time object
gitTagDate := time.Unix(i, 0)
- return gitTagDate.UTC().Format("2006/01/02 15:04:05 UTC"), getDurationStamp(gitTagDate)
+ return gitTagDate, gitTagDate.UTC().Format("2006/01/02 15:04:05 UTC"), getDurationStamp(gitTagDate)
}
func getDurationStamp(t time.Time) string {
@@ -323,16 +329,18 @@ func formatDuration(d time.Duration) string {
return result
}
+func (rs *RepoStatus) XtermNohup(cmdline string) {
+ shell.XtermCmd(rs.Path(), []string{cmdline})
+}
+func (rs *RepoStatus) Xterm(cmdline string) {
+ shell.XtermCmd(rs.Path(), []string{cmdline})
+}
+func (rs *RepoStatus) XtermWait(cmdline string) {
+ shell.XtermCmdWait(rs.Path(), []string{cmdline})
+}
+/*
func (rs *RepoStatus) XtermNohup(args []string) {
var argsX = []string{"xterm", "-geometry", "120x40"}
- /*
- if xtermHold.Checked() {
- log.Println("hold = true")
- argsXterm = append(argsXterm, "-hold")
- } else {
- log.Println("hold = false")
- }
- */
argsX = append(argsX, "-e", "bash", "-c")
argsX = append(argsX, args...)
log.Info("xterm cmd=", argsX)
@@ -353,17 +361,11 @@ func (rs *RepoStatus) XtermNohup(args []string) {
log.Info("cmd =", argsX)
}
}
+*/
+/*
func (rs *RepoStatus) Xterm(args []string) {
var argsX = []string{"-geometry", "120x40"}
- /*
- if xtermHold.Checked() {
- log.Println("hold = true")
- argsXterm = append(argsXterm, "-hold")
- } else {
- log.Println("hold = false")
- }
- */
argsX = append(argsX, "-e", "bash", "-c")
argsX = append(argsX, args...)
log.Info("xterm cmd=", argsX)
@@ -382,18 +384,36 @@ func (rs *RepoStatus) Xterm(args []string) {
log.Info("cmd = xterm", argsX)
}
}
+*/
+/*
func (rs *RepoStatus) XtermHold(args []string) {
var argsX = []string{"-hold", "-geometry", "120x40"}
- /*
- if xtermHold.Checked() {
- log.Println("hold = true")
- argsXterm = append(argsXterm, "-hold")
- } else {
- log.Println("hold = false")
- }
- */
- argsX = append(argsX, "-e", "bash", "-c")
+ 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.realPath.String()
+ cmd.Dir = path
+ if err := cmd.Run(); err != nil {
+ log.Info("xterm.Run() failed")
+ log.Info("path =", path)
+ log.Info("cmd = xterm", argsX)
+ } else {
+ log.Info("xterm.Run() worked")
+ log.Info("path =", path)
+ log.Info("cmd = xterm", argsX)
+ }
+}
+*/
+
+func (rs *RepoStatus) 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