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 = lua.NewState()
l.OpenLibs() l.OpenLibs()
@ -60,9 +60,8 @@ func LuaInit() {
} }
} }
homedir, _ := os.UserHomeDir()
// Run config // Run config
err = l.DoFile(homedir + "/.hilbishrc.lua") err = l.DoFile(confpath)
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, err, fmt.Fprintln(os.Stderr, err,
"\nAn error has occured while loading your config! Falling back to minimal default config.\n") "\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 var homedir string
func main() { func main() {
homedir, _ = os.UserHomeDir()
defaultconfpath := homedir + "/.hilbishrc.lua"
parser := argparse.NewParser("hilbish", "A shell for lua and flower lovers") parser := argparse.NewParser("hilbish", "A shell for lua and flower lovers")
verflag := parser.Flag("v", "version", &argparse.Options{ verflag := parser.Flag("v", "version", &argparse.Options{
Required: false, Required: false,
@ -40,6 +43,11 @@ func main() {
Required: false, Required: false,
Help: "Sets $SHELL to Hilbish's executed path", 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) err := parser.Parse(os.Args)
// If invalid flags or --help/-h, // If invalid flags or --help/-h,
@ -57,9 +65,8 @@ func main() {
// Set $SHELL if the user wants to // Set $SHELL if the user wants to
if *setshflag { os.Setenv("SHELL", os.Args[0]) } if *setshflag { os.Setenv("SHELL", os.Args[0]) }
homedir, _ = os.UserHomeDir()
// If user's config doesn't exixt, // 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 // Read default from current directory
// (this is assuming the current dir is Hilbish's git) // (this is assuming the current dir is Hilbish's git)
input, err := os.ReadFile(".hilbishrc.lua") input, err := os.ReadFile(".hilbishrc.lua")
@ -83,7 +90,7 @@ func main() {
} }
HandleSignals() HandleSignals()
LuaInit() LuaInit(*configflag)
readline.Completer = readline.FilenameCompleter readline.Completer = readline.FilenameCompleter
readline.LoadHistory(homedir + "/.hilbish-history") readline.LoadHistory(homedir + "/.hilbish-history")