mirror of https://github.com/Hilbis/Hilbish
Compare commits
9 Commits
8f94990fc3
...
fd478e883f
Author | SHA1 | Date |
---|---|---|
sammy | fd478e883f | |
sammy | 0f9d3732fb | |
sammy | accd4beeba | |
sammy | a140db1610 | |
sammy | 630d7dde9c | |
sammy | 0ddfc5bea0 | |
sammy | cc995e0f34 | |
sammy | 05f5bbcfdd | |
sammy | 0acae37704 |
4
lua.go
4
lua.go
|
@ -65,9 +65,9 @@ func LuaInit() {
|
|||
.. os.getenv 'HOME' .. '/.local/share/hilbish/libs/?.lua'
|
||||
`)
|
||||
|
||||
err := l.DoFile("/usr/share/hilbish/preload.lua")
|
||||
err := l.DoFile("preload.lua")
|
||||
if err != nil {
|
||||
err = l.DoFile("preload.lua")
|
||||
err = l.DoFile("/usr/share/hilbish/preload.lua")
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr,
|
||||
"Missing preload file, builtins may be missing.")
|
||||
|
|
18
main.go
18
main.go
|
@ -14,10 +14,11 @@ import (
|
|||
"github.com/pborman/getopt"
|
||||
"github.com/bobappleyard/readline"
|
||||
"github.com/yuin/gopher-lua"
|
||||
"layeh.com/gopher-luar"
|
||||
"golang.org/x/term"
|
||||
)
|
||||
|
||||
const version = "0.4.0"
|
||||
const version = "0.4.1-dev.7"
|
||||
|
||||
var (
|
||||
l *lua.LState
|
||||
|
@ -46,7 +47,7 @@ func main() {
|
|||
// parser := argparse.NewParser("hilbish", "A shell for lua and flower lovers")
|
||||
verflag := getopt.BoolLong("version", 'v', "Prints Hilbish version")
|
||||
setshflag := getopt.BoolLong("setshellenv", 'S', "Sets $SHELL to Hilbish's executed path")
|
||||
cmdflag := getopt.StringLong("command", 'c', "", /*TODO: Help description*/ "")
|
||||
cmdflag := getopt.StringLong("command", 'c', "", "Executes a command on startup")
|
||||
configflag := getopt.StringLong("config", 'C', defaultconfpath, "Sets the path to Hilbish's config")
|
||||
getopt.BoolLong("login", 'l', "Makes Hilbish act like a login shell")
|
||||
getopt.BoolLong("interactive", 'i', "Force Hilbish to be an interactive shell")
|
||||
|
@ -108,13 +109,17 @@ func main() {
|
|||
}
|
||||
}
|
||||
|
||||
go HandleSignals()
|
||||
LuaInit()
|
||||
|
||||
RunLogin()
|
||||
RunInput(*cmdflag)
|
||||
RunConfig(*configflag)
|
||||
|
||||
readline.Completer = readline.FilenameCompleter
|
||||
readline.LoadHistory(homedir + "/.hilbish-history")
|
||||
|
||||
RunInput(*cmdflag)
|
||||
if getopt.NArgs() > 0 {
|
||||
l.SetGlobal("args", luar.New(l, getopt.Args()))
|
||||
err := l.DoFile(getopt.Arg(0))
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
|
@ -123,11 +128,6 @@ func main() {
|
|||
os.Exit(0)
|
||||
}
|
||||
|
||||
readline.Completer = readline.FilenameCompleter
|
||||
readline.LoadHistory(homedir + "/.hilbish-history")
|
||||
|
||||
go HandleSignals()
|
||||
|
||||
for interactive {
|
||||
running = false
|
||||
|
||||
|
|
|
@ -20,8 +20,8 @@ commander.register('cd', function (args)
|
|||
if err == 1 then
|
||||
print('directory does not exist')
|
||||
end
|
||||
bait.throw('command.exit', err)
|
||||
else bait.throw('command.exit', 0) end
|
||||
return err
|
||||
end
|
||||
return
|
||||
end
|
||||
fs.cd(os.getenv 'HOME')
|
||||
|
|
11
shell.go
11
shell.go
|
@ -52,9 +52,17 @@ func RunInput(input string) {
|
|||
l.GetGlobal("commanding"),
|
||||
lua.LString("__commands")),
|
||||
cmdArgs[0]),
|
||||
NRet: 0,
|
||||
NRet: 1,
|
||||
Protect: true,
|
||||
}, luar.New(l, cmdArgs[1:]))
|
||||
luaexitcode := l.Get(-1)
|
||||
exitcode := lua.LNumber(0)
|
||||
|
||||
l.Pop(1)
|
||||
|
||||
if code, ok := luaexitcode.(lua.LNumber); luaexitcode != lua.LNil && ok {
|
||||
exitcode = code
|
||||
}
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr,
|
||||
"Error in command:\n\n" + err.Error())
|
||||
|
@ -62,6 +70,7 @@ func RunInput(input string) {
|
|||
if cmdArgs[0] != "exit" {
|
||||
HandleHistory(cmdString)
|
||||
}
|
||||
hooks.Em.Emit("command.exit", exitcode)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue