From e4c3445f590300b45256e1c6c89565e4b063ff49 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Wed, 24 Mar 2021 15:03:49 -0400 Subject: [PATCH 1/8] chore: update readme --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index b205b92..00853c3 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,6 @@ It is currently in a mostly beta state but is very much usable (I'm using it right now). -There are still some things missing like pipes but granted that will be -added soon. (or you can use dev branch) - # Links - **[Documentation](https://github.com/Hilbis/Hilbish/wiki)** From bad357af4813eb4af75c4f80682e5ff58d82c040 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Wed, 24 Mar 2021 15:03:58 -0400 Subject: [PATCH 2/8] chore: update todo --- TODO.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index d12ef8d..2bd04b6 100644 --- a/TODO.md +++ b/TODO.md @@ -1,6 +1,6 @@ [x] Configuration - [ ] Make default config if missing -[ ] Tab completion + [x] Make default config if missing +[x] Tab completion [x] Custom commands via the shell [ ] Confirmed windows support [ ] Readme badges From d3bd47963dea6b8042007d7f1c4403f684bb69bc Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Wed, 24 Mar 2021 15:04:09 -0400 Subject: [PATCH 3/8] chore: bump version --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index c314184..0cf9e34 100644 --- a/main.go +++ b/main.go @@ -23,7 +23,7 @@ import ( ) -const version = "0.0.12" +const version = "0.1.0" var l *lua.LState var prompt string var commands = map[string]bool{} From 972c6e44b30de678b55a6a658df69915543cccc0 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Wed, 24 Mar 2021 19:18:30 -0400 Subject: [PATCH 4/8] feat: go to next line if sh input is incomplete --- main.go | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 0cf9e34..c932a72 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,7 @@ package main import ( - _ "bufio" + "bufio" "fmt" "os" _ "os/exec" @@ -23,7 +23,7 @@ import ( ) -const version = "0.1.0" +const version = "0.1.1" var l *lua.LState var prompt string var commands = map[string]bool{} @@ -125,12 +125,45 @@ func main() { default: err := execCommand(cmdString) if err != nil { - fmt.Fprintln(os.Stderr, err) + if syntax.IsIncomplete(err) { + sb := &strings.Builder{} + for { + done := StartMultiline(cmdString, sb) + if done { + break + } + } + } else { + fmt.Fprintln(os.Stderr, err) + } } } } } +func StartMultiline(prev string, sb *strings.Builder) bool { + if sb.String() == "" { sb.WriteString(prev + "\n") } + + fmt.Printf("... ") + + reader := bufio.NewReader(os.Stdin) + + cont, err := reader.ReadString('\n') + if err == io.EOF { + fmt.Println("") + return true + } + + sb.WriteString(cont) + + err = execCommand(sb.String()) + if err != nil && syntax.IsIncomplete(err) { + return false + } + + return true +} + func splitInput(input string) []string { quoted := false cmdArgs := []string{} @@ -161,10 +194,7 @@ func splitInput(input string) []string { func execCommand(cmd string) error { file, err := syntax.NewParser().Parse(strings.NewReader(cmd), "") if err != nil { - if syntax.IsIncomplete(err) { - fmt.Println("incomplete input") - return nil - } + return err } runner, _ := interp.New( interp.StdIO(os.Stdin, os.Stdout, os.Stderr), From 1c1ec87612d06220a1a727b5bcc537f0a2465713 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Wed, 24 Mar 2021 20:21:55 -0400 Subject: [PATCH 5/8] feat: add to history for lua --- main.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index c932a72..8d1a285 100644 --- a/main.go +++ b/main.go @@ -90,7 +90,10 @@ func main() { cmdString = strings.TrimSuffix(cmdString, "\n") err = l.DoString(cmdString) - if err == nil { continue } + if err == nil { + readline.AddHistory(cmdString) + continue + } cmdArgs := splitInput(cmdString) if len(cmdArgs) == 0 { continue } From deb1bc8a5e21bc2b05774a5a5d0b259867595e75 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Wed, 24 Mar 2021 20:22:25 -0400 Subject: [PATCH 6/8] chore: bump version --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 8d1a285..16ae2b7 100644 --- a/main.go +++ b/main.go @@ -23,7 +23,7 @@ import ( ) -const version = "0.1.1" +const version = "0.1.2" var l *lua.LState var prompt string var commands = map[string]bool{} From eeafd1e5cfee01795e8ad7361404dfd4ae1288a0 Mon Sep 17 00:00:00 2001 From: devins2518 Date: Thu, 25 Mar 2021 11:04:42 -0500 Subject: [PATCH 7/8] fix: add hilbish to /etc/shells (#9) --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index cf68fec..046597b 100644 --- a/Makefile +++ b/Makefile @@ -9,12 +9,14 @@ install: @install -v -d "$(BINDIR)/" && install -m 0755 -v hilbish "$(BINDIR)/hilbish" @mkdir -p "$(LIBDIR)" @cp libs preload.lua .hilbishrc.lua "$(LIBDIR)" -r + @echo /usr/bin/hilbish >> /etc/shells @echo "Hilbish Installed" uninstall: @rm -vrf \ "$(BINDIR)/hilbish" \ "$(LIBDIR)" + @sed '/\/usr\/bin\/hilbish/d' /etc/shells @echo "Hilbish Uninstalled" clean: From e4218a135ad4fd938171277187b42687331a4f5b Mon Sep 17 00:00:00 2001 From: devins2518 Date: Thu, 25 Mar 2021 11:07:51 -0500 Subject: [PATCH 8/8] fix: only create rc file if it doesn't exist (#10) --- main.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 16ae2b7..5cd4ceb 100644 --- a/main.go +++ b/main.go @@ -59,12 +59,14 @@ func main() { } homedir, _ := os.UserHomeDir() - err = os.WriteFile(homedir + "/.hilbishrc.lua", input, 0644) - if err != nil { - fmt.Println("Error creating config file") - fmt.Println(err) - return - } + if _, err := os.Stat(homedir + "/.hilbishrc.lua"); os.IsNotExist(err) { + err = os.WriteFile(homedir + "/.hilbishrc.lua", input, 0644) + if err != nil { + fmt.Println("Error creating config file") + fmt.Println(err) + return + } + } HandleSignals() LuaInit()