fix: move tool checks before tea.ExecProcess to fix namespace selection

This commit is contained in:
2026-08-09 19:38:21 +02:00
parent 6795ee1f4f
commit e48bd790bd
+9 -10
View File
@@ -192,6 +192,14 @@ func (m *fullModel) handleSelect() (tea.Model, tea.Cmd) {
case screenNamespace: case screenNamespace:
m.selectedNamespace = item.value m.selectedNamespace = item.value
if err := kubeexec.CheckTool("tmux"); err != nil {
m.err = err
return m, nil
}
if err := kubeexec.CheckTool("k9s"); err != nil {
m.err = err
return m, nil
}
return m, m.startTmuxSession() return m, m.startTmuxSession()
} }
return m, nil return m, nil
@@ -257,15 +265,7 @@ func (m *fullModel) loadNamespacesFor(teamValue string) tea.Cmd {
// configured envs, resolved via the context template, so both are // configured envs, resolved via the context template, so both are
// visible side by side. // visible side by side.
func (m *fullModel) startTmuxSession() tea.Cmd { func (m *fullModel) startTmuxSession() tea.Cmd {
return func() tea.Msg { selfPath := "kctl-tui"
if err := kubeexec.CheckTool("tmux"); err != nil {
return errMsg{err}
}
if err := kubeexec.CheckTool("k9s"); err != nil {
return errMsg{err}
}
selfPath := "kctl-tui" // resolved via PATH; see README for install instructions
panelCmd := fmt.Sprintf("%s panel --context=%s --ns=%s --team=%s", panelCmd := fmt.Sprintf("%s panel --context=%s --ns=%s --team=%s",
selfPath, m.selectedContext, m.selectedNamespace, m.selectedTeam) selfPath, m.selectedContext, m.selectedNamespace, m.selectedTeam)
@@ -299,7 +299,6 @@ func (m *fullModel) startTmuxSession() tea.Cmd {
return tmuxDoneMsg{err: err} return tmuxDoneMsg{err: err}
}) })
} }
}
func (m *fullModel) View() string { func (m *fullModel) View() string {
view := m.list.View() view := m.list.View()