feat: add -C flag (closes #20)

pull/26/head
TorchedSammy 2021-04-07 08:40:40 -04:00
parent 2b01d5edb2
commit 0fa3d50db7
2 changed files with 12 additions and 6 deletions

5
lua.go
View File

@ -17,7 +17,7 @@ prompt(ansikit.format(
))
`
func LuaInit() {
func LuaInit(confpath string) {
l = lua.NewState()
l.OpenLibs()
@ -60,9 +60,8 @@ func LuaInit() {
}
}
homedir, _ := os.UserHomeDir()
// Run config
err = l.DoFile(homedir + "/.hilbishrc.lua")
err = l.DoFile(confpath)
if err != nil {
fmt.Fprintln(os.Stderr, err,
"\nAn error has occured while loading your config! Falling back to minimal default config.\n")

13
main.go
View File

@ -31,6 +31,9 @@ var bait hooks.Bait
var homedir string
func main() {
homedir, _ = os.UserHomeDir()
defaultconfpath := homedir + "/.hilbishrc.lua"
parser := argparse.NewParser("hilbish", "A shell for lua and flower lovers")
verflag := parser.Flag("v", "version", &argparse.Options{
Required: false,
@ -40,6 +43,11 @@ func main() {
Required: false,
Help: "Sets $SHELL to Hilbish's executed path",
})
configflag := parser.String("C", "config", &argparse.Options{
Required: false,
Help: "Sets the path to Hilbish's config",
Default: defaultconfpath,
})
err := parser.Parse(os.Args)
// If invalid flags or --help/-h,
@ -57,9 +65,8 @@ func main() {
// Set $SHELL if the user wants to
if *setshflag { os.Setenv("SHELL", os.Args[0]) }
homedir, _ = os.UserHomeDir()
// If user's config doesn't exixt,
if _, err := os.Stat(homedir + "/.hilbishrc.lua"); os.IsNotExist(err) {
if _, err := os.Stat(defaultconfpath); os.IsNotExist(err) {
// Read default from current directory
// (this is assuming the current dir is Hilbish's git)
input, err := os.ReadFile(".hilbishrc.lua")
@ -83,7 +90,7 @@ func main() {
}
HandleSignals()
LuaInit()
LuaInit(*configflag)
readline.Completer = readline.FilenameCompleter
readline.LoadHistory(homedir + "/.hilbish-history")