From b39083fe3265ee998867d5f4b3afa61e4748d5db Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Sat, 2 Apr 2022 12:33:08 -0400 Subject: [PATCH] fix: deregister commander if return isnt number --- exec.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/exec.go b/exec.go index ff4ace2..0e08cd5 100644 --- a/exec.go +++ b/exec.go @@ -192,8 +192,7 @@ func execCommand(cmd string, terminalOut bool) (io.Writer, io.Writer, error) { if commands[args[0]] != nil { luaexitcode, err := rt.Call1(l.MainThread(), rt.FunctionValue(commands[args[0]]), rt.TableValue(luacmdArgs)) if err != nil { - fmt.Fprintln(os.Stderr, - "Error in command:\n\n" + err.Error()) + fmt.Fprintln(os.Stderr, "Error in command:\n\n" + err.Error()) return interp.NewExitStatus(1) } @@ -201,7 +200,11 @@ func execCommand(cmd string, terminalOut bool) (io.Writer, io.Writer, error) { if code, ok := luaexitcode.TryInt(); ok { exitcode = uint8(code) - } // TODO: deregister commander if return isnt number + } else if luaexitcode != rt.NilValue { + // deregister commander + delete(commands, args[0]) + fmt.Fprintf(os.Stderr, "Commander did not return number for exit code. %s, you're fired.\n", args[0]) + } return interp.NewExitStatus(exitcode) }