From def3e886511e4cbac53e5f78525d481b36ba91c0 Mon Sep 17 00:00:00 2001 From: James Hillyerd Date: Fri, 16 Feb 2024 14:16:17 -0800 Subject: [PATCH] luahost: use sentinel ErrNoScript (#490) Signed-off-by: James Hillyerd --- pkg/extension/luahost/lua.go | 6 +++++- pkg/server/lifecycle.go | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/extension/luahost/lua.go b/pkg/extension/luahost/lua.go index 45788b9..dd07cfd 100644 --- a/pkg/extension/luahost/lua.go +++ b/pkg/extension/luahost/lua.go @@ -2,6 +2,7 @@ package luahost import ( "bufio" + "errors" "fmt" "io" "os" @@ -15,6 +16,9 @@ import ( "github.com/yuin/gopher-lua/parse" ) +// ErrNoScript signals that the Lua script file was not present. +var ErrNoScript error = errors.New("no script file present") + // Host of Lua extensions. type Host struct { extHost *extension.Host @@ -35,7 +39,7 @@ func New(conf config.Lua, extHost *extension.Host) (*Host, error) { // Pre-load, parse, and compile script. if fi, err := os.Stat(scriptPath); err != nil { logger.Info().Msg("Script file not found") - return nil, nil + return nil, ErrNoScript } else if fi.IsDir() { return nil, fmt.Errorf("lua script %v is a directory", scriptPath) } diff --git a/pkg/server/lifecycle.go b/pkg/server/lifecycle.go index 1f68748..a770e99 100644 --- a/pkg/server/lifecycle.go +++ b/pkg/server/lifecycle.go @@ -37,7 +37,7 @@ func FullAssembly(conf *config.Root) (*Services, error) { // Configure extensions. extHost := extension.NewHost() luaHost, err := luahost.New(conf.Lua, extHost) - if err != nil { + if err != nil && err != luahost.ErrNoScript { return nil, err }