/
extension.go
36 lines (29 loc) · 1.01 KB
/
extension.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package lua
import (
"github.com/raggaer/castro/app/util"
lua "github.com/yuin/gopher-lua"
)
// SetExtensionMetaTable sets the extension metatable for the given state
func SetExtensionMetaTable(luaState *lua.LState) {
// Create and set the log metatable
extMetaTable := luaState.NewTypeMetatable(ExtensionMetaTableName)
luaState.SetGlobal(ExtensionMetaTableName, extMetaTable)
// Set all mail metatable functions
luaState.SetFuncs(extMetaTable, extensionMethods)
}
// ReloadExtensions reloads all extensions
func ReloadExtensions(L *lua.LState) int {
// Reload extension pages
if err := CompiledPageList.CompileExtensions("pages"); err != nil {
L.RaiseError("Cannot reload extension page list: %v", err)
}
// Reload extension widgets
if err := WidgetList.LoadExtensions(); err != nil {
L.RaiseError("Cannot reload extension widget list: %v", err)
}
// Reload extension widget list
if err := util.Widgets.LoadExtensions(); err != nil {
L.RaiseError("Cannot reload extension widget list: %v", err)
}
return 0
}