Get rid of os.Exit() from ExecAndHoldTillEnter

This commit is contained in:
Kovid Goyal 2025-09-30 13:25:22 +05:30
parent 712faa7aa5
commit ca7ab7a57c
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
2 changed files with 7 additions and 8 deletions

View file

@ -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__

View file

@ -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
}