mirror of
				https://github.com/sammy-ette/Hilbish
				synced 2025-08-10 02:52:03 +00:00 
			
		
		
		
	Compare commits
	
		
			No commits in common. "41e5e3f789b2c3b730e48b1216d80ded6f768f03" and "bfa3b55542e35a4cea7e8acc7d0362c0c92c614d" have entirely different histories.
		
	
	
		
			41e5e3f789
			...
			bfa3b55542
		
	
		
@ -31,8 +31,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
 | 
					- `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
 | 
				
			||||||
 | 
				
			|||||||
@ -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! 🌺 ✨
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										30
									
								
								exec.go
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								exec.go
									
									
									
									
									
								
							@ -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)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user