feat: define lua require paths in var

this makes it able to be changed compile time, which should help
in support for systems that dont follow fhs (damn nix)
and windows as well, but that'll be first class
pull/60/head
sammyette 2021-06-08 19:16:37 -04:00
parent 2a084fc03e
commit 86dbb97cae
No known key found for this signature in database
GPG Key ID: 50EE40A2809851F5
3 changed files with 26 additions and 17 deletions

9
lua.go
View File

@ -58,14 +58,7 @@ func LuaInit() {
l.PreloadModule("bait", hooks.Loader)
// Add more paths that Lua can require from
l.DoString(`package.path = package.path
.. ';./libs/?/init.lua;./?/init.lua;./?/?.lua'
.. ';/usr/share/hilbish/libs/?/init.lua;'
.. ';/usr/share/hilbish/libs/?/?.lua;'
.. os.getenv 'HOME' .. '/.local/share/hilbish/libs/?/init.lua;'
.. os.getenv 'HOME' .. '/.local/share/hilbish/libs/?/?.lua;'
.. os.getenv 'HOME' .. '/.local/share/hilbish/libs/?.lua'
`)
l.DoString("package.path = package.path .. " + requirePaths)
err := l.DoFile("preload.lua")
if err != nil {

View File

@ -18,26 +18,17 @@ import (
"golang.org/x/term"
)
var (
version = "v0.4.0"
l *lua.LState
lr *LineReader
prompt string // User's prompt, this will get set when lua side is initialized
multilinePrompt = "> "
commands = map[string]bool{}
aliases = map[string]string{}
homedir string
curuser *user.User
running bool // Is a command currently running
hooks bait.Bait
interactive bool
login bool // Are we the login shell?
noexecute bool // Should we run Lua or only report syntax errors
)
func main() {

25
vars.go 100644
View File

@ -0,0 +1,25 @@
package main
// String vars that are free to be changed at compile time
var (
version = "v0.4.0"
requirePaths = `';./libs/?/init.lua;./?/init.lua;./?/?.lua'
.. ';/usr/share/hilbish/libs/?/init.lua;'
.. ';/usr/share/hilbish/libs/?/?.lua;'
.. os.getenv 'HOME' .. '/.local/share/hilbish/libs/?/init.lua;'
.. os.getenv 'HOME' .. '/.local/share/hilbish/libs/?/?.lua;'
.. os.getenv 'HOME' .. '/.local/share/hilbish/libs/?.lua'`
prompt string // Prompt will always get changed anyway
multilinePrompt = "> "
)
// Flags
var (
running bool // Is a command currently running
interactive bool
login bool // Are we the login shell?
noexecute bool // Should we run Lua or only report syntax errors
)