Compare commits

..

1 Commits

Author SHA1 Message Date
sammyette 70c2b91fca
Merge eded38c7b5 into 38d036d96f 2024-06-14 12:57:49 +00:00
17 changed files with 15 additions and 59 deletions

View File

@ -29,7 +29,7 @@ jobs:
- name: Setup Go - name: Setup Go
uses: actions/setup-go@v5 uses: actions/setup-go@v5
with: with:
go-version: '1.22.2' go-version: '1.18.8'
- name: Download Task - name: Download Task
run: 'sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d' run: 'sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d'
- name: Build - name: Build

View File

@ -30,9 +30,6 @@ hilbish.run('wc -l', {
### Fixed ### Fixed
- Fix ansi attributes causing issues with text when cut off in greenhouse - Fix ansi attributes causing issues with text when cut off in greenhouse
- `exec` command should return if no arg presented
- Commanders can now be cancelled by Ctrl-C and wont hang the shell anymore.
See [issue 198](https://github.com/Rosettea/Hilbish/issues/198).
## [2.2.3] - 2024-04-27 ## [2.2.3] - 2024-04-27
### Fixed ### Fixed

View File

@ -1,6 +1,3 @@
> [!TIP]
> Check out [Hilbish: Midnight Edition](https://github.com/Rosettea/Hilbish/tree/midnight-edition) if you want to use C Lua, LuaJIT or anything related!
<img src="./assets/hilbish-logo-and-text.png" width=512><br> <img src="./assets/hilbish-logo-and-text.png" width=512><br>
<blockquote> <blockquote>
🌓 The Moon-powered shell! A comfy and extensible shell for Lua fans! 🌺 ✨ 🌓 The Moon-powered shell! A comfy and extensible shell for Lua fans! 🌺 ✨
@ -39,7 +36,7 @@ on the website for distributed binaries from GitHub or other package repositorie
Otherwise, continue reading for steps on compiling. Otherwise, continue reading for steps on compiling.
## Prerequisites ## Prerequisites
- [Go 1.22+](https://go.dev) - [Go 1.17+](https://go.dev)
- [Task](https://taskfile.dev/installation/) (**Go on the hyperlink here to see Task's install method for your OS.**) - [Task](https://taskfile.dev/installation/) (**Go on the hyperlink here to see Task's install method for your OS.**)
## Build ## Build

30
exec.go
View File

@ -8,7 +8,6 @@ import (
"fmt" "fmt"
"io" "io"
"os" "os"
"os/signal"
"path/filepath" "path/filepath"
"runtime" "runtime"
"strings" "strings"
@ -354,34 +353,7 @@ func execHandle(bg bool) interp.ExecHandlerFunc {
sinks.Set(rt.StringValue("out"), rt.UserDataValue(stdout.ud)) sinks.Set(rt.StringValue("out"), rt.UserDataValue(stdout.ud))
sinks.Set(rt.StringValue("err"), rt.UserDataValue(stderr.ud)) sinks.Set(rt.StringValue("err"), rt.UserDataValue(stderr.ud))
t := rt.NewThread(l) luaexitcode, err := rt.Call1(l.MainThread(), rt.FunctionValue(cmd), rt.TableValue(luacmdArgs), rt.TableValue(sinks))
sig := make(chan os.Signal)
exit := make(chan bool)
luaexitcode := rt.IntValue(63)
var err error
go func() {
defer func() {
if r := recover(); r != nil {
exit <- true
}
}()
signal.Notify(sig, os.Interrupt)
select {
case <-sig:
t.KillContext()
return
}
}()
go func() {
luaexitcode, err = rt.Call1(t, rt.FunctionValue(cmd), rt.TableValue(luacmdArgs), rt.TableValue(sinks))
exit <- true
}()
<-exit
if err != nil { if err != nil {
fmt.Fprintln(os.Stderr, "Error in command:\n" + err.Error()) fmt.Fprintln(os.Stderr, "Error in command:\n" + err.Error())
return interp.NewExitStatus(1) return interp.NewExitStatus(1)

View File

@ -1,4 +1,4 @@
//go:build unix // +build linux darwin
package main package main

View File

@ -1,4 +1,4 @@
//go:build windows // +build windows
package main package main

View File

@ -1,4 +1,4 @@
//go:build windows // +build windows
package main package main

View File

@ -1,4 +1,4 @@
//go:build unix // +build darwin linux
package main package main

View File

@ -1,4 +1,4 @@
//go:build windows // +build windows
package main package main

View File

@ -6,7 +6,6 @@ import (
"fmt" "fmt"
"io" "io"
"os" "os"
"os/exec"
"os/user" "os/user"
"path/filepath" "path/filepath"
"runtime" "runtime"
@ -116,13 +115,7 @@ func main() {
// Set $SHELL if the user wants to // Set $SHELL if the user wants to
if *setshflag { if *setshflag {
os.Setenv("SHELL", "hilbish") os.Setenv("SHELL", os.Args[0])
path, err := exec.LookPath("hilbish")
if err == nil {
os.Setenv("SHELL", path)
}
} }
lr = newLineReader("", false) lr = newLineReader("", false)

View File

@ -1,8 +1,5 @@
local commander = require 'commander' local commander = require 'commander'
commander.register('exec', function(args) commander.register('exec', function(args)
if #args == 0 then
return
end
hilbish.exec(args[1]) hilbish.exec(args[1])
end) end)

View File

@ -1,4 +1,4 @@
//go:build pprof // +build pprof
package main package main

View File

@ -1,4 +1,4 @@
//go:build unix // +build darwin linux
package main package main

View File

@ -1,4 +1,4 @@
//go:build windows // +build windows
package main package main

View File

@ -1,4 +1,4 @@
//go:build darwin // +build darwin
package main package main

View File

@ -1,4 +1,4 @@
//go:build unix && !darwin // +build linux
package main package main

View File

@ -1,4 +1,4 @@
//go:build windows // +build windows
package main package main