diff --git a/app/app.go b/app/app.go index 2718b8e..5519673 100644 --- a/app/app.go +++ b/app/app.go @@ -1,6 +1,7 @@ package app import ( + "fmt" "github.com/AnatolyRugalev/kube-commander/app/ui" "github.com/AnatolyRugalev/kube-commander/app/ui/status" "github.com/AnatolyRugalev/kube-commander/app/ui/workspace" @@ -111,7 +112,7 @@ func (a *app) Run() error { a.screen = ui.NewScreen(a) err := a.initScreen() if err != nil { - return err + return fmt.Errorf("could not initialize screen: %w", err) } a.workspace = workspace.NewWorkspace(a, a.defaultNamespace) err = a.workspace.Init() diff --git a/app/executor/cmd_nix.go b/app/executor/cmd_nix.go index fd28f7a..8c67cc8 100644 --- a/app/executor/cmd_nix.go +++ b/app/executor/cmd_nix.go @@ -34,7 +34,6 @@ func (e *executor) renderCommand(command *commander.Command) string { // execute runs given command in emulated PTY environment // This is required for cross-platform execution func (e *executor) runCmd(cmd *exec.Cmd) error { - cmd.SysProcAttr.Setpgid = true ptmx, err := pty.Start(cmd) if err != nil { return fmt.Errorf("could not start PTY terminal: %w", err) @@ -74,5 +73,6 @@ func (e *executor) runCmd(cmd *exec.Cmd) error { if err != nil { return err } - return nil + _, err = cmd.Process.Wait() + return err } diff --git a/cmd/kube-commander/main.go b/cmd/kube-commander/main.go index 51b3202..5befbfc 100644 --- a/cmd/kube-commander/main.go +++ b/cmd/kube-commander/main.go @@ -99,7 +99,7 @@ func run(_ *cobra.Command, _ []string) error { conf := client.NewDefaultConfig(cfg.kubeconfig, cfg.context, cfg.namespace) cl, err := client.NewClient(conf) if err != nil { - return err + return fmt.Errorf("could not initialize kubernetes client: %w", err) } b := builder.NewBuilder(conf, cfg.kubectl, cfg.pager, cfg.editor, cfg.tail) application := app.NewApp(conf, cl, cl, b, executor.NewOsExecutor(), conf.Namespace())