func (d *InitDirective) Apply(c api.Server, items map[string]interface{}) (bool, error) { s, ok := items["init"].(string) if !ok { return false, errors.New("init value not string") } sz := strings.TrimSpace(s) if bs, err := ioutil.ReadFile(sz); err == nil { s = string(bs) } else { if !strings.HasSuffix(err.Error(), "no such file or directory") { log.Info("directive.init.readfile", "error", err) } } c.OnInit(func(L *lua.LState) error { L.SetGlobal("motd", lua.LString("hello, world oninit")) return nil }) return false, nil }