mirror of
				https://github.com/sammy-ette/Hilbish
				synced 2025-08-10 02:52:03 +00:00 
			
		
		
		
	fix: cleanup, store lua commands in map
This commit is contained in:
		
							parent
							
								
									1e1662a6b2
								
							
						
					
					
						commit
						efc956a04c
					
				
							
								
								
									
										11
									
								
								lua.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								lua.go
									
									
									
									
									
								
							| @ -45,15 +45,8 @@ 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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user