mirror of https://github.com/Hilbis/Hilbish
feat: add hilbish.read function
`hilbish.read` will read input from the user, using hilbish's line editor library (hilbiline or readline)dev
parent
97a6e4baf2
commit
84ec3d085d
|
@ -2,5 +2,9 @@ cwd() > Returns the current directory of the shell
|
||||||
|
|
||||||
flag(f) > Checks if the `f` flag has been passed to Hilbish.
|
flag(f) > Checks if the `f` flag has been passed to Hilbish.
|
||||||
|
|
||||||
|
read(prompt) -> input? > Read input from the user, using Hilbish's line editor/input reader.
|
||||||
|
This is a separate instance from the one Hilbish actually uses.
|
||||||
|
Returns `input`, will be nil if ctrl + d is pressed, or an error occurs (which shouldn't happen)
|
||||||
|
|
||||||
run(cmd) > Runs `cmd` in Hilbish's sh interpreter
|
run(cmd) > Runs `cmd` in Hilbish's sh interpreter
|
||||||
|
|
||||||
|
|
20
hilbish.go
20
hilbish.go
|
@ -19,6 +19,7 @@ var exports = map[string]lua.LGFunction {
|
||||||
"run": hlrun,
|
"run": hlrun,
|
||||||
"flag": hlflag,
|
"flag": hlflag,
|
||||||
"cwd": hlcwd,
|
"cwd": hlcwd,
|
||||||
|
"read": hlread,
|
||||||
}
|
}
|
||||||
|
|
||||||
func HilbishLoader(L *lua.LState) int {
|
func HilbishLoader(L *lua.LState) int {
|
||||||
|
@ -94,3 +95,22 @@ func getenv(key, fallback string) string {
|
||||||
}
|
}
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// read(prompt) -> input?
|
||||||
|
// Read input from the user, using Hilbish's line editor/input reader.
|
||||||
|
// This is a separate instance from the one Hilbish actually uses.
|
||||||
|
// Returns `input`, will be nil if ctrl + d is pressed, or an error occurs (which shouldn't happen)
|
||||||
|
func hlread(L *lua.LState) int {
|
||||||
|
luaprompt := L.CheckString(1)
|
||||||
|
lualr := NewLineReader(luaprompt)
|
||||||
|
|
||||||
|
input, err := lualr.Read()
|
||||||
|
if err != nil {
|
||||||
|
L.Push(lua.LNil)
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
L.Push(lua.LString(input))
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue