mirror of
				https://github.com/sammy-ette/Hilbish
				synced 2025-08-10 02:52:03 +00:00 
			
		
		
		
	Compare commits
	
		
			No commits in common. "5787582c2e6a69deb0a45743a7af1a7d8f238c08" and "54689b7dd1f04d7048496fcc81cec779b00788d2" have entirely different histories.
		
	
	
		
			5787582c2e
			...
			54689b7dd1
		
	
		
| @ -8,7 +8,8 @@ function doPrompt(fail) | ||||
| 	)) | ||||
| end | ||||
| 
 | ||||
| print(lunacolors.format(hilbish.greeting)) | ||||
| print(lunacolors.format('Welcome to {magenta}Hilbish{reset}, {cyan}' .. hilbish.user | ||||
| .. '{reset}.\n' .. 'The nice lil shell for {blue}Lua{reset} fanatics!\n')) | ||||
| 
 | ||||
| doPrompt() | ||||
| 
 | ||||
|  | ||||
| @ -23,18 +23,11 @@ var exports = map[string]lua.LGFunction { | ||||
| 	"read": hlread, | ||||
| } | ||||
| 
 | ||||
| var greeting string | ||||
| 
 | ||||
| func hilbishLoader(L *lua.LState) int { | ||||
| 	mod := L.SetFuncs(L.NewTable(), exports) | ||||
| 
 | ||||
| 	host, _ := os.Hostname() | ||||
| 	username := curuser.Username | ||||
| 
 | ||||
| 	greeting = `Welcome to {magenta}Hilbish{reset}, {cyan}` + curuser.Username + `{reset}. | ||||
| The nice lil shell for {blue}Lua{reset} fanatics! | ||||
| ` | ||||
| 
 | ||||
| 	if runtime.GOOS == "windows" { | ||||
| 		username = strings.Split(username, "\\")[1] // for some reason Username includes the hostname on windows | ||||
| 	} | ||||
| @ -46,7 +39,6 @@ The nice lil shell for {blue}Lua{reset} fanatics! | ||||
| 	util.SetField(L, mod, "dataDir", lua.LString(dataDir), "Directory for Hilbish's data files") | ||||
| 	util.SetField(L, mod, "interactive", lua.LBool(interactive), "If this is an interactive shell") | ||||
| 	util.SetField(L, mod, "login", lua.LBool(interactive), "Whether this is a login shell") | ||||
| 	util.SetField(L, mod, "greeting", lua.LString(greeting), "Hilbish's welcome message for interactive shells. It has Lunacolors formatting.") | ||||
| 	util.Document(L, mod, "Hilbish's core API, containing submodules and functions which relate to the shell itself.") | ||||
| 
 | ||||
| 	// hilbish.userDir table | ||||
|  | ||||
							
								
								
									
										20
									
								
								lua.go
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								lua.go
									
									
									
									
									
								
							| @ -137,23 +137,7 @@ func hshalias(L *lua.LState) int { | ||||
| // appendPath(dir) | ||||
| // Appends `dir` to $PATH | ||||
| func hshappendPath(L *lua.LState) int { | ||||
| 	// check if dir is a table or a string | ||||
| 	arg := L.Get(1) | ||||
| 	fmt.Println(arg.Type()) | ||||
| 	if arg.Type() == lua.LTTable { | ||||
| 		arg.(*lua.LTable).ForEach(func(k lua.LValue, v lua.LValue) { | ||||
| 			appendPath(v.String()) | ||||
| 		}) | ||||
| 	} else if arg.Type() == lua.LTString { | ||||
| 		appendPath(arg.String()) | ||||
| 	} else { | ||||
| 		L.RaiseError("bad argument to appendPath (expected string or table, got %v)", L.Get(1).Type().String()) | ||||
| 	} | ||||
| 
 | ||||
| 	return 0 | ||||
| } | ||||
| 
 | ||||
| func appendPath(dir string) { | ||||
| 	dir := L.CheckString(1) | ||||
| 	dir = strings.Replace(dir, "~", curuser.HomeDir, 1) | ||||
| 	pathenv := os.Getenv("PATH") | ||||
| 
 | ||||
| @ -161,6 +145,8 @@ func appendPath(dir string) { | ||||
| 	if !strings.Contains(pathenv, dir) { | ||||
| 		os.Setenv("PATH", pathenv + string(os.PathListSeparator) + dir) | ||||
| 	} | ||||
| 
 | ||||
| 	return 0 | ||||
| } | ||||
| 
 | ||||
| // exec(cmd) | ||||
|  | ||||
							
								
								
									
										16
									
								
								shell.go
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								shell.go
									
									
									
									
									
								
							| @ -9,7 +9,6 @@ import ( | ||||
| 	"time" | ||||
| 
 | ||||
| 	"github.com/yuin/gopher-lua" | ||||
| 	"mvdan.cc/sh/v3/shell" | ||||
| 	//"github.com/yuin/gopher-lua/parse" | ||||
| 	"mvdan.cc/sh/v3/interp" | ||||
| 	"mvdan.cc/sh/v3/syntax" | ||||
| @ -86,19 +85,10 @@ func execCommand(cmd string) error { | ||||
| 
 | ||||
| 	exechandle := func(ctx context.Context, args []string) error { | ||||
| 		_, argstring := splitInput(strings.Join(args, " ")) | ||||
| 		// i dont really like this but it works | ||||
| 		if aliases.All()[args[0]] != "" { | ||||
| 			for i, arg := range args { | ||||
| 				if strings.Contains(arg, " ") { | ||||
| 					args[i] = fmt.Sprintf("\"%s\"", arg) | ||||
| 				} | ||||
| 			} | ||||
| 			_, argstring = splitInput(strings.Join(args, " ")) | ||||
| 
 | ||||
| 			// If alias was found, use command alias | ||||
| 			argstring = aliases.Resolve(argstring) | ||||
| 			args, _ = shell.Fields(argstring, nil) | ||||
| 		} | ||||
| 		// If alias was found, use command alias | ||||
| 		argstring = aliases.Resolve(argstring) | ||||
| 		args, _ = splitInput(argstring) | ||||
| 
 | ||||
| 		// If command is defined in Lua then run it | ||||
| 		luacmdArgs := l.NewTable() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user