fix: move LuaInit function to lua.go

pull/21/head^2
TorchedSammy 2021-03-30 22:37:08 -04:00
parent 1234c780f8
commit 1d22e4cdc1
2 changed files with 54 additions and 50 deletions

54
lua.go
View File

@ -1,9 +1,63 @@
package main
import (
"fmt"
"os"
lfs "hilbish/golibs/fs"
cmds "hilbish/golibs/commander"
hooks "hilbish/golibs/bait"
"github.com/yuin/gopher-lua"
)
func LuaInit() {
l = lua.NewState()
l.OpenLibs()
l.SetGlobal("prompt", l.NewFunction(hshprompt))
l.SetGlobal("alias", l.NewFunction(hshalias))
// Add fs module to Lua
l.PreloadModule("fs", lfs.Loader)
commander := cmds.New()
// When a command from Lua is added, register it for use
commander.Events.On("commandRegister",
func (cmdName string, cmd *lua.LFunction) {
commands[cmdName] = true
l.SetField(
l.GetTable(l.GetGlobal("commanding"),
lua.LString("__commands")),
cmdName,
cmd)
})
l.PreloadModule("commander", commander.Loader)
bait = hooks.New()
l.PreloadModule("bait", bait.Loader)
// Add more paths that Lua can require from
l.DoString("package.path = package.path .. ';./libs/?/init.lua;/usr/share/hilbish/libs/?/init.lua'")
err := l.DoFile("/usr/share/hilbish/preload.lua")
if err != nil {
err = l.DoFile("preload.lua")
if err != nil {
fmt.Fprintln(os.Stderr,
"Missing preload file, builtins may be missing.")
}
}
homedir, _ := os.UserHomeDir()
// Run config
err = l.DoFile(homedir + "/.hilbishrc.lua")
if err != nil {
panic(err)
}
}
func hshprompt(L *lua.LState) int {
prompt = L.ToString(1)

50
main.go
View File

@ -10,8 +10,6 @@ import (
"strings"
"io"
"context"
lfs "hilbish/golibs/fs"
cmds "hilbish/golibs/commander"
hooks "hilbish/golibs/bait"
"github.com/akamensky/argparse"
@ -304,51 +302,3 @@ func HandleSignals() {
}()
}
func LuaInit() {
// TODO: Move to lua.go
l = lua.NewState()
l.OpenLibs()
l.SetGlobal("prompt", l.NewFunction(hshprompt))
l.SetGlobal("alias", l.NewFunction(hshalias))
// Add fs module to Lua
l.PreloadModule("fs", lfs.Loader)
commander := cmds.New()
// When a command from Lua is added, register it for use
commander.Events.On("commandRegister",
func (cmdName string, cmd *lua.LFunction) {
commands[cmdName] = true
l.SetField(
l.GetTable(l.GetGlobal("commanding"),
lua.LString("__commands")),
cmdName,
cmd)
})
l.PreloadModule("commander", commander.Loader)
bait = hooks.New()
l.PreloadModule("bait", bait.Loader)
// Add more paths that Lua can require from
l.DoString("package.path = package.path .. ';./libs/?/init.lua;/usr/share/hilbish/libs/?/init.lua'")
err := l.DoFile("/usr/share/hilbish/preload.lua")
if err != nil {
err = l.DoFile("preload.lua")
if err != nil {
fmt.Fprintln(os.Stderr,
"Missing preload file, builtins may be missing.")
}
}
homedir, _ := os.UserHomeDir()
// Run config
err = l.DoFile(homedir + "/.hilbishrc.lua")
if err != nil {
panic(err)
}
}