0fc5f457ad
major rewrite which changes the library hilbish uses for it's lua vm this one implements lua 5.4, and since that's a major version bump, it's a breaking change. introduced here also is a fix for `hilbish.login` not being the right value * refactor: start work on lua 5.4 lots of commented out code ive found a go lua library which implements lua 5.4 and found an opportunity to start working on it. this commit basically removes everything and just leaves enough for the shell to be "usable" and able to start. there are no builtins or libraries (besides the `hilbish` global) * fix: call cont next in prompt function this continues execution of lua, very obvious fixes an issue with code stopping at the prompt function * fix: handle errors in user config * fix: handle panic in lua input if it is incorrect * feat: implement bait * refactor: use util funcs to run lua where possible * refactor: move arg handle function to util * feat: implement commander * feat: implement fs * feat: add hilbish module functions used by prelude * chore: use custom fork of golua * fix: make sure args to setenv are strings in prelude * feat: implement completions * chore: remove comment * feat: implement terminal * feat: implement hilbish.interval * chore: update lunacolors * chore: update golua * feat: implement aliases * feat: add input mode * feat: implement runner mode * style: use comma separated cases instead of fallthrough * feat: implement syntax highlight and hints * chore: add comments to document util functions * chore: fix dofile comment doc * refactor: make loader functions for go modules unexported * feat: implement job management * feat: add hilbish properties * feat: implement all hilbish module functions * feat: implement history interface * feat: add completion interface * feat: add module description docs * feat: implement os interface * refactor: use hlalias for add function in hilbish.alias interface * feat: make it so hilbish.run can return command output * fix: set hilbish.exitCode to last command exit code * fix(ansikit): flush on io.write * fix: deregister commander if return isnt number * feat: run script when provided path * fix: read file manually in DoFile to avoid shebang * chore: add comment for reason of unreading byte * fix: remove prelude error printing * fix: add names at chunk load for context in errors * fix: add newline at the beginning of file buffer when there is shebang this makes the line count in error messages line up properly * fix: remove extra newline after error |
||
---|---|---|
.github | ||
assets | ||
cmd/docgen | ||
docs | ||
emmyLuaDocs | ||
gallery | ||
golibs | ||
libs | ||
prelude | ||
readline | ||
util | ||
.gitignore | ||
.gitmodules | ||
.hilbishrc.lua | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
Makefile | ||
README.md | ||
aliases.go | ||
api.go | ||
complete.go | ||
exec.go | ||
execfile_unix.go | ||
execfile_windows.go | ||
go.mod | ||
go.sum | ||
history.go | ||
job.go | ||
lua.go | ||
main.go | ||
rl.go | ||
runnermode.go | ||
signal_unix.go | ||
signal_windows.go | ||
vars.go | ||
vars_darwin.go | ||
vars_linux.go | ||
vars_windows.go |
README.md
Hilbish is a extensible shell (framework). It was made to be very customizable via the Lua programming language. It aims to be easy to use for the casual people but powerful for those who want to tinker more with their shell, the thing used to interface with most of the system.
The motivation for choosing Lua was that its simpler and better to use than old shell script. It's fine for basic interactive shell uses, but that's the only place Hilbish has shell script; everything else is Lua and aims to be infinitely configurable. If something isn't, open an issue!
Table of Contents
Screenshots
Installation
Prebuilt binaries
Go here for builds on the master branch.
AUR
Arch Linux users can install Hilbish from the AUR with the following command:
yay -S hilbish
Or from the latest master
commit with:
yay -S hilbish-git
Nixpkgs
Nix/NixOS users can install Hilbish from the central repository, nixpkgs, through the usual ways. If you're new to nix you should probably read up on how to do that here.
Manual Build
Prerequisites
Build
First, clone Hilbish. The recursive is required, as some Lua libraries are submodules.
git clone --recursive https://github.com/Rosettea/Hilbish
cd Hilbish
go get -d ./...
To build, run:
make dev
Or, if you want a stable branch, run these commands:
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
make build
After you did all that, run sudo make install
to install Hilbish globally.
Getting Started
At startup, you should see a message which says to run a guide
command.
This guide is a very simple and basic step through text of what Hilbish is
and where to find documentation.
Documentation is primarily viewed via the in shell doc
command.
Autogenerated function docs and general docs about other things are included
there, so be sure to read it.
Using Hilbish is the same as using any other Linux shell, with an addition
that you can also run Lua. Hilbish can also act as an enhanced Lua REPL
via hilbish.runnerMode 'lua'
. To switch back to normal, use
hilbish.runnerMode 'hybrid'
.
Contributing
Any kind of contributions are welcome! Hilbish is very easy to contribute to. Read CONTRIBUTING.md as a guideline to doing so.
Thanks to everyone below who's contributed!
Made with contributors-img.
License
Hilbish is licensed under the MIT license.
Images and assets are licensed under CC-BY-SA 4.0