mirror of https://github.com/Hilbis/Hilbish
fix: cleanup and move exit command to lua side
parent
ef4975f984
commit
807ec15faa
|
@ -26,6 +26,10 @@ commander.register('cd', function (args)
|
||||||
bait.throw('command.success', nil)
|
bait.throw('command.success', nil)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
commander.register('exit', function()
|
||||||
|
os.exit(0)
|
||||||
|
end)
|
||||||
|
|
||||||
do
|
do
|
||||||
local virt_G = { }
|
local virt_G = { }
|
||||||
|
|
||||||
|
|
14
shell.go
14
shell.go
|
@ -47,19 +47,15 @@ func RunInput(input string) {
|
||||||
Protect: true,
|
Protect: true,
|
||||||
}, luar.New(l, cmdArgs[1:]))
|
}, luar.New(l, cmdArgs[1:]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// TODO: dont panic
|
fmt.Fprintln(os.Stderr,
|
||||||
panic(err)
|
"Error in command:\n\n" + err.Error())
|
||||||
}
|
}
|
||||||
HandleHistory(cmdString)
|
if cmdArgs[0] != "exit" { HandleHistory(cmdString) }
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Last option: use sh interpreter
|
// Last option: use sh interpreter
|
||||||
switch cmdArgs[0] {
|
err = execCommand(cmdString)
|
||||||
case "exit":
|
|
||||||
os.Exit(0)
|
|
||||||
default:
|
|
||||||
err := execCommand(cmdString)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// If input is incomplete, start multiline prompting
|
// If input is incomplete, start multiline prompting
|
||||||
if syntax.IsIncomplete(err) {
|
if syntax.IsIncomplete(err) {
|
||||||
|
@ -67,7 +63,6 @@ func RunInput(input string) {
|
||||||
cmdString, err = ContinuePrompt(strings.TrimSuffix(cmdString, "\\"))
|
cmdString, err = ContinuePrompt(strings.TrimSuffix(cmdString, "\\"))
|
||||||
if err != nil { break }
|
if err != nil { break }
|
||||||
err = execCommand(cmdString)
|
err = execCommand(cmdString)
|
||||||
|
|
||||||
if syntax.IsIncomplete(err) || strings.HasSuffix(input, "\\") {
|
if syntax.IsIncomplete(err) || strings.HasSuffix(input, "\\") {
|
||||||
continue
|
continue
|
||||||
} else if code, ok := interp.IsExitStatus(err); ok {
|
} else if code, ok := interp.IsExitStatus(err); ok {
|
||||||
|
@ -87,7 +82,6 @@ func RunInput(input string) {
|
||||||
bait.Em.Emit("command.exit", 0)
|
bait.Em.Emit("command.exit", 0)
|
||||||
}
|
}
|
||||||
HandleHistory(cmdString)
|
HandleHistory(cmdString)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run command in sh interpreter
|
// Run command in sh interpreter
|
||||||
|
|
Loading…
Reference in New Issue