mirror of https://github.com/Hilbis/Hilbish
fix: cleanup, store lua commands in map
parent
1e1662a6b2
commit
efc956a04c
13
lua.go
13
lua.go
|
@ -45,16 +45,9 @@ func LuaInit() {
|
|||
|
||||
cmds := commander.New()
|
||||
// When a command from Lua is added, register it for use
|
||||
// TODO: maybe dont add command code to a lua table? insstead use a map
|
||||
cmds.Events.On("commandRegister",
|
||||
func(cmdName string, cmd *lua.LFunction) {
|
||||
commands[cmdName] = true
|
||||
l.SetField(
|
||||
l.GetTable(l.GetGlobal("commanding"),
|
||||
lua.LString("__commands")),
|
||||
cmdName,
|
||||
cmd)
|
||||
})
|
||||
cmds.Events.On("commandRegister", func(cmdName string, cmd *lua.LFunction) {
|
||||
commands[cmdName] = cmd
|
||||
})
|
||||
|
||||
l.PreloadModule("commander", cmds.Loader)
|
||||
|
||||
|
|
2
main.go
2
main.go
|
@ -22,7 +22,7 @@ var (
|
|||
l *lua.LState
|
||||
lr *LineReader
|
||||
|
||||
commands = map[string]bool{}
|
||||
commands = map[string]*lua.LFunction{}
|
||||
aliases = map[string]string{}
|
||||
|
||||
homedir string
|
||||
|
|
16
shell.go
16
shell.go
|
@ -49,13 +49,9 @@ func RunInput(input string) {
|
|||
hooks.Em.Emit("command.exit", 0)
|
||||
return
|
||||
}
|
||||
if commands[cmdArgs[0]] {
|
||||
if commands[cmdArgs[0]] != nil {
|
||||
err := l.CallByParam(lua.P{
|
||||
Fn: l.GetField(
|
||||
l.GetTable(
|
||||
l.GetGlobal("commanding"),
|
||||
lua.LString("__commands")),
|
||||
cmdArgs[0]),
|
||||
Fn: commands[cmdArgs[0]],
|
||||
NRet: 1,
|
||||
Protect: true,
|
||||
}, luar.New(l, cmdArgs[1:]))
|
||||
|
@ -128,13 +124,9 @@ func execCommand(cmd string) error {
|
|||
}
|
||||
|
||||
// If command is defined in Lua then run it
|
||||
if commands[args[0]] {
|
||||
if commands[args[0]] != nil {
|
||||
err := l.CallByParam(lua.P{
|
||||
Fn: l.GetField(
|
||||
l.GetTable(
|
||||
l.GetGlobal("commanding"),
|
||||
lua.LString("__commands")),
|
||||
args[0]),
|
||||
Fn: commands[args[0]],
|
||||
NRet: 1,
|
||||
Protect: true,
|
||||
}, luar.New(l, args[1:]))
|
||||
|
|
Loading…
Reference in New Issue