From 313dffcbbfac0de5d4dffa502af7a7bf990660c6 Mon Sep 17 00:00:00 2001 From: Stefan Koelle Date: Sun, 9 Aug 2026 20:56:39 +0200 Subject: [PATCH] Fix Windows: remove -- separator (psmux incompatible), add unknown command error - Remove -- separator from tmux args (psmux on Windows doesn't support it) - Unknown subcommands now show error + usage (exit 1) instead of starting TUI - --help now always shows usage and exits (no fallthrough to TUI) --- SPEC.md | 6 +++--- cmd/kctl-tui/full.go | 6 +++--- cmd/kctl-tui/main.go | 8 +++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/SPEC.md b/SPEC.md index 55f3d8c..b61be96 100644 --- a/SPEC.md +++ b/SPEC.md @@ -92,10 +92,10 @@ Example startup command (generic placeholders): # Kill stale session first (separate command — tmux aborts on kill-session error). tmux kill-session -t kctl tmux new-session -d -s kctl \ - -- "kctl-tui panel --context=$CTX_A --ns=$NS --team=$TEAM" \; \ + "kctl-tui panel --context=$CTX_A --ns=$NS --team=$TEAM" \; \ set-option -t kctl remain-on-exit on \; \ - split-window -v -t kctl:0.0 -- "k9s --context $CTX_A -n $NS" \; \ - split-window -v -t kctl:0.1 -- "k9s --context $CTX_B -n $NS" \; \ + split-window -v -t kctl:0.0 "k9s --context $CTX_A -n $NS" \; \ + split-window -v -t kctl:0.1 "k9s --context $CTX_B -n $NS" \; \ select-layout -t kctl even-vertical \; \ select-pane -t kctl:0.0 \; \ attach -t kctl diff --git a/cmd/kctl-tui/full.go b/cmd/kctl-tui/full.go index 236b46d..0332c26 100644 --- a/cmd/kctl-tui/full.go +++ b/cmd/kctl-tui/full.go @@ -282,16 +282,16 @@ func (m *fullModel) startTmuxSession() tea.Cmd { args := []string{ "new-session", "-d", "-s", "kctl", - "--", panelCmd, ";", + panelCmd, ";", "set-option", "-t", "kctl", "remain-on-exit", "on", ";", - "split-window", "-v", "-t", "kctl:0.0", "--", k9sCmdA, ";", + "split-window", "-v", "-t", "kctl:0.0", k9sCmdA, ";", } if len(m.cfg.Envs) > 1 { envB := m.cfg.Envs[1] ctxB := m.cfg.ResolveContext(envB, m.selectedContext) k9sCmdB := fmt.Sprintf("k9s --context %s -n %s", ctxB, m.selectedNamespace) args = append(args, - "split-window", "-v", "-t", "kctl:0.1", "--", k9sCmdB, ";", + "split-window", "-v", "-t", "kctl:0.1", k9sCmdB, ";", ) } args = append(args, diff --git a/cmd/kctl-tui/main.go b/cmd/kctl-tui/main.go index ea542de..fbd66c4 100644 --- a/cmd/kctl-tui/main.go +++ b/cmd/kctl-tui/main.go @@ -39,9 +39,7 @@ func main() { if showHelp || len(filtered) == 0 { printUsage() - if showHelp && len(filtered) == 0 { - return - } + return } if len(filtered) > 0 { @@ -64,6 +62,10 @@ func main() { os.Exit(1) } return + default: + fmt.Fprintf(os.Stderr, "unknown command: %s\n\n", filtered[0]) + printUsage() + os.Exit(1) } }