From 1ff2a545825854e30e28e27d4e3696a0001da1e6 Mon Sep 17 00:00:00 2001 From: James Walker Date: Wed, 1 Dec 2021 22:14:34 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=97=EF=B8=8F=20add/use=20new=20ListSes?= =?UTF-8?q?sions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tmux/project.go | 14 +++++++------- tmux/tmux.go | 12 ++++++++++++ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/tmux/project.go b/tmux/project.go index b048126..dda15d3 100644 --- a/tmux/project.go +++ b/tmux/project.go @@ -8,7 +8,6 @@ import ( "os/exec" "path" "path/filepath" - "regexp" "strings" "syscall" @@ -206,11 +205,12 @@ func getConfigFilePath(name string) string { func sessionExists(name string) bool { t := Tmux{} - result, err := t.Exec("ls") - if err != nil { - return false - } - re := regexp.MustCompile(fmt.Sprintf("^%s:", name)) - return re.MatchString(string(result)) + sessions := t.ListSessions() + for _, s := range sessions { + if s == name { + return true + } + } + return false } diff --git a/tmux/tmux.go b/tmux/tmux.go index a740549..7fbbd26 100644 --- a/tmux/tmux.go +++ b/tmux/tmux.go @@ -42,6 +42,18 @@ func (t *Tmux) Attach(name string) { } } +func (t *Tmux) ListSessions() []string { + sessions := []string{} + result, err := t.Exec("ls", "-F", "#{session_name}") + if err != nil { + fmt.Println("Error:", err) + return sessions + } + + lines := strings.Trim(string(result), "\n") + return strings.Split(lines, "\n") +} + func (t *Tmux) getBinary() string { if t.BinPath != "" { return t.BinPath