From ca7ab7a57ce35a6dd77c1572596df58891b3a5df Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 30 Sep 2025 13:25:22 +0530 Subject: [PATCH] Get rid of os.Exit() from ExecAndHoldTillEnter --- tools/cmd/tool/main.go | 3 +-- tools/tui/hold.go | 12 ++++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/tools/cmd/tool/main.go b/tools/cmd/tool/main.go index 338496e62..c2f079460 100644 --- a/tools/cmd/tool/main.go +++ b/tools/cmd/tool/main.go @@ -107,8 +107,7 @@ func KittyToolEntryPoints(root *cli.Command) { Hidden: true, OnlyArgsAllowed: true, Run: func(cmd *cli.Command, args []string) (rc int, err error) { - tui.ExecAndHoldTillEnter(args) - return + return tui.ExecAndHoldTillEnter(args) }, }) // __shebang__ diff --git a/tools/tui/hold.go b/tools/tui/hold.go index 6c3f50831..2da9bbd9d 100644 --- a/tools/tui/hold.go +++ b/tools/tui/hold.go @@ -41,10 +41,10 @@ func HoldTillEnter(start_with_newline bool) { lp.Run() } -func ExecAndHoldTillEnter(cmdline []string) { +func ExecAndHoldTillEnter(cmdline []string) (int, error) { if len(cmdline) == 0 { HoldTillEnter(false) - os.Exit(0) + return 0, nil } var cmd *exec.Cmd if len(cmdline) == 1 { @@ -59,14 +59,14 @@ func ExecAndHoldTillEnter(cmdline []string) { err := cmd.Run() is_exit_error := err != nil && errors.As(err, &ee) if err != nil && !is_exit_error { - fmt.Fprintln(os.Stderr, err) + return 1, err } HoldTillEnter(true) if err == nil { - os.Exit(0) + return 0, nil } if is_exit_error { - os.Exit(ee.ExitCode()) + return ee.ExitCode(), nil } - os.Exit(1) + return 1, err }