Compare commits

..

No commits in common. "7aa9fb9fe658168ac431a6e8169d882c4ab6cb76" and "14e6ae5a3c3f0fa5c32256e54302ca49b66a7425" have entirely different histories.

4 changed files with 19 additions and 95 deletions

View File

@ -1,31 +0,0 @@
name: Build
on:
- push
- pull_request
jobs:
build:
name: ${{ matrix.build }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- build: linux-amd64
os: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: '1.16.2'
- name: Build
run: make hilbiline
- uses: actions/upload-artifact@v2
with:
name: hilbish-${{ matrix.build }}
path: hilbish

View File

@ -25,27 +25,16 @@ but there may still be breaking changes in Lua modules.
- **[Gallery](https://github.com/Hilbis/Hilbish/discussions/36)** - See - **[Gallery](https://github.com/Hilbis/Hilbish/discussions/36)** - See
more screenshots of Hilbish in action more screenshots of Hilbish in action
# Installation # Building
Prebuilt binaries are not yet provided, so to try it out you'll have to manually compile.
**NOTE:** Hilbish is currently only officially supported and tested on Linux **NOTE:** Hilbish is currently only officially supported and tested on Linux
### Prebuilt binaries ### Prerequisites
Binaries are provided for the latest commit.
**Note that these use Hilbiline, not readline, and may be missing functionality
(moving the cursor, proper unicode support and backspace working properly)**
Click on the checkmark (or x) near the commit hash, then details for your platform
<br><img src="https://modeus.is-inside.me/dyr8UGGq.png"><br>
Then click on the artifacts drop down, and download artifact for your platform,
like what is highlighted in the screenshot.
<br><img src="https://modeus.is-inside.me/KJ0Puceb.png"><br>
### Manual Build
#### Prerequisites
- [Go 1.16](https://go.dev) - [Go 1.16](https://go.dev)
- GNU Readline - GNU Readline
On Fedora, readline can be installed with: On Fedora, readline can be installed with:
``` ```
sudo dnf install readline-devel sudo dnf install readline-devel
@ -61,26 +50,27 @@ On OpenSUSE, it can be installed with:
sudo zypper install readline-devel sudo zypper install readline-devel
``` ```
#### Build ### Install
First, clone Hilbish: First, clone Hilbish:
```sh ```sh
git clone --recursive https://github.com/Hilbis/Hilbish git clone --recursive https://github.com/Hilbis/Hilbish
cd Hilbish cd Hilbish
# If you want the latest stable release, run this following command
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
``` ```
And get dependencies and build: Then build and install:
```sh ```sh
go get -d
make dev make dev
# If you want to use latest stable release, sudo make install
make build # Or
# or want to use Hilbiline, sudo make all
make hilbiline ```
Or, if you want the latest stable release:
```
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
make build
sudo make install
``` ```
#### Install
`sudo make install`
Alternatively, if you use Arch Linux, you can compile Hilbish with an **(unofficial)** AUR package: Alternatively, if you use Arch Linux, you can compile Hilbish with an **(unofficial)** AUR package:
```sh ```sh

View File

@ -1,7 +1,6 @@
package fs package fs
import ( import (
"fmt"
"os" "os"
"strings" "strings"
@ -32,13 +31,9 @@ func cd(L *lua.LState) int {
err := os.Chdir(strings.TrimSpace(path)) err := os.Chdir(strings.TrimSpace(path))
if err != nil { if err != nil {
switch e := err.(*os.PathError).Err.Error(); e { switch err.(*os.PathError).Err.Error() {
case "no such file or directory": case "no such file or directory":
LuaErr(L, 1) LuaErr(L, 1)
default:
fmt.Printf("Found unhandled error case: %s", e)
fmt.Printf("Report this at https://github.com/Hilbis/Hilbish/issues with the title being: \"fs: unahndled error case %s\", and show what caused it.\n", e)
LuaErr(L, 213)
} }
} }

View File

@ -16,7 +16,7 @@ import (
) )
func RunInput(input string) { func RunInput(input string) {
cmdArgs, cmdString := splitInput(input) _, cmdString := splitInput(input)
// First try to load input, essentially compiling to bytecode // First try to load input, essentially compiling to bytecode
fn, err := l.LoadString(cmdString) fn, err := l.LoadString(cmdString)
@ -38,31 +38,6 @@ func RunInput(input string) {
hooks.Em.Emit("command.exit", 0) hooks.Em.Emit("command.exit", 0)
return return
} }
if commands[cmdArgs[0]] {
err := l.CallByParam(lua.P{
Fn: l.GetField(
l.GetTable(
l.GetGlobal("commanding"),
lua.LString("__commands")),
cmdArgs[0]),
NRet: 1,
Protect: true,
}, luar.New(l, cmdArgs[1:]))
luaexitcode := l.Get(-1)
var exitcode uint8 = 0
l.Pop(1)
if code, ok := luaexitcode.(lua.LNumber); luaexitcode != lua.LNil && ok {
exitcode = uint8(code)
}
if err != nil {
fmt.Fprintln(os.Stderr,
"Error in command:\n\n" + err.Error())
}
hooks.Em.Emit("command.exit", exitcode)
}
// Last option: use sh interpreter // Last option: use sh interpreter
err = execCommand(cmdString) err = execCommand(cmdString)
@ -147,11 +122,6 @@ func execCommand(cmd string) error {
return interp.NewExitStatus(exitcode) return interp.NewExitStatus(exitcode)
} }
err := l.DoString(argstring)
if err == nil {
return nil
}
if _, err := interp.LookPathDir(hc.Dir, hc.Env, args[0]); err != nil { if _, err := interp.LookPathDir(hc.Dir, hc.Env, args[0]); err != nil {
hooks.Em.Emit("command.not-found", args[0]) hooks.Em.Emit("command.not-found", args[0])
return interp.NewExitStatus(127) return interp.NewExitStatus(127)