From 19b9f677245e46aa8f5f84915344abb8b6b5ef79 Mon Sep 17 00:00:00 2001 From: David Dworken Date: Mon, 6 Nov 2023 21:39:01 -0800 Subject: [PATCH] Fix bug with automatic cd-ing where quoting the directory caused tildes to not get expanded into the user's homedir --- client/tui/tui.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/client/tui/tui.go b/client/tui/tui.go index e5517ea..54ac53b 100644 --- a/client/tui/tui.go +++ b/client/tui/tui.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "os" + "path/filepath" "regexp" "strings" "time" @@ -390,7 +391,15 @@ func (m model) View() string { SELECTED_COMMAND = m.tableEntries[m.table.Cursor()].Command if m.selected == SelectedWithChangeDir { changeDir := m.tableEntries[m.table.Cursor()].CurrentWorkingDirectory - // TODO: There is a bug here if changeDir contains ~, see https://askubuntu.com/questions/1032370/why-cant-i-cd-to-a-quoted-tilde + if strings.HasPrefix(changeDir, "~/") { + homedir, err := os.UserHomeDir() + if err != nil { + hctx.GetLogger().Infof("UserHomeDir() return err=%v, skipping replacing ~/", err) + } else { + strippedChangeDir, _ := strings.CutPrefix(changeDir, "~/") + changeDir = filepath.Join(homedir, strippedChangeDir) + } + } SELECTED_COMMAND = "cd \"" + changeDir + "\" && " + SELECTED_COMMAND } return ""