2
2
Mirror von https://github.com/Hilbis/Hilbish synchronisiert 2025-07-12 05:42:02 +00:00

Commits vergleichen

..

Keine gemeinsamen Commits. "7486d584658fb557ab7de9a2b49a8a6e2d93ec41" und "4a08ab78377eabbba5a6c2fa254589d7fc0d2f50" haben vollständig unterschiedliche Historien.

4 geänderte Dateien mit 17 neuen und 77 gelöschten Zeilen

Datei anzeigen

@ -9,14 +9,12 @@ 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:

Datei anzeigen

@ -4,6 +4,9 @@
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)**

Datei anzeigen

@ -1,22 +0,0 @@
package bait
import (
"github.com/chuckpreslar/emission"
"github.com/yuin/gopher-lua"
)
type Bait struct{}
func New() Bait {
return Bait{}
}
func (b *Bait) Loader(L *lua.LState) int {
var exports = map[string]lua.LGFunction{}
mod := L.SetFuncs(L.NewTable(), exports)
L.Push(mod)
return 1
}

53
main.go
Datei anzeigen

@ -1,7 +1,7 @@
package main
import (
"bufio"
_ "bufio"
"fmt"
"os"
_ "os/exec"
@ -63,14 +63,12 @@ func main() {
}
homedir, _ := os.UserHomeDir()
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()
@ -85,7 +83,7 @@ func main() {
//fmt.Printf(prompt)
cmdString, err := readline.String(fmtPrompt())
cmdString, err := readline.String(prompt)
if err == io.EOF {
fmt.Println("")
break
@ -96,10 +94,7 @@ func main() {
cmdString = strings.TrimSuffix(cmdString, "\n")
err = l.DoString(cmdString)
if err == nil {
readline.AddHistory(cmdString)
continue
}
if err == nil { continue }
cmdArgs := splitInput(cmdString)
if len(cmdArgs) == 0 { continue }
@ -134,47 +129,10 @@ func main() {
default:
err := execCommand(cmdString)
if err != nil {
if syntax.IsIncomplete(err) {
sb := &strings.Builder{}
for {
done := StartMultiline(cmdString, sb)
if done {
break
}
}
} else {
fmt.Fprintln(os.Stderr, err)
}
}
}
}
}
func fmtPrompt() string {
return prompt
}
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 {
@ -207,7 +165,10 @@ func splitInput(input string) []string {
func execCommand(cmd string) error {
file, err := syntax.NewParser().Parse(strings.NewReader(cmd), "")
if err != nil {
return err
if syntax.IsIncomplete(err) {
fmt.Println("incomplete input")
return nil
}
}
runner, _ := interp.New(
interp.StdIO(os.Stdin, os.Stdout, os.Stderr),