mirror of https://github.com/Hilbis/Hilbish
Compare commits
5 Commits
c29b6c6fd4
...
7ac0e27739
Author | SHA1 | Date |
---|---|---|
sammyette | 7ac0e27739 | |
sammyette | d2c720c863 | |
sammyette | 0977110e79 | |
sammyette | b387b18923 | |
sammyette | d58617b173 |
82
README.md
82
README.md
|
@ -1,17 +1,23 @@
|
|||
<div align="center">
|
||||
<h1>Hilbish</h1>
|
||||
<img src="./assets/hilbish-flower.png" width=128><br>
|
||||
<img src="./assets/hilbish-text.png" width=256>
|
||||
<h1></h1>
|
||||
<blockquote>
|
||||
🎀 a nice lil shell for lua people made with go and lua
|
||||
</blockquote><p align="center">
|
||||
<a href="https://github.com/Hilbis/Hilbish/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22"><img src="https://img.shields.io/github/issues/Hilbis/Hilbish/help%20wanted?color=green" alt="help wanted"></a>
|
||||
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
|
||||
🌺 The flower shell. A comfy and nice little shell for Lua users and fans!
|
||||
</blockquote>
|
||||
<p align="center">
|
||||
<img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/Rosettea/Hilbish?style=flat-square">
|
||||
<img alt="GitHub commits since latest release (by date)" src="https://img.shields.io/github/commits-since/Rosettea/Hilbish/latest?style=flat-square">
|
||||
<img alt="GitHub contributors" src="https://img.shields.io/github/contributors/Rosettea/Hilbish?style=flat-square"><br>
|
||||
<a href="https://github.com/Rosettea/Hilbish/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22"><img src="https://img.shields.io/github/issues/Hilbis/Hilbish/help%20wanted?style=flat-square&color=green" alt="help wanted"></a>
|
||||
<a href="https://github.com/Rosettea/Hilbish/blob/master/LICENSE"><img alt="GitHub license" src="https://img.shields.io/github/license/Rosettea/Hilbish?style=flat-square"></a>
|
||||
<a href="https://discord.gg/3PDdcQz"><img alt="Discord" src="https://img.shields.io/discord/732357621503229962?color=blue&style=flat-square"></a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Hilbish is an interactive Unix-like shell written in Go, with the config
|
||||
and other code written in Lua.
|
||||
It is sort of in a stable state currently, usable as a daily shell,
|
||||
but there may still be breaking changes in Lua modules.
|
||||
Hilbish is a new, Unix-like shell which uses Lua as its configuration language.
|
||||
It's decently fast for interactive use and includes a bunch of utility functions and features
|
||||
to make your life in a terminal easier.
|
||||
|
||||
# Screenshots
|
||||
<div align="center">
|
||||
|
@ -42,21 +48,22 @@ like what is highlighted in the screenshot.
|
|||
<br><img src="https://modeus.is-inside.me/KJ0Puceb.png"><br>
|
||||
|
||||
### AUR
|
||||
Arch Linux users can install Hilbish from the AUR.
|
||||
![AUR maintainer](https://img.shields.io/aur/maintainer/hilbish?logo=arch-linux&style=flat-square)
|
||||
Arch Linux users can install Hilbish from the AUR with the following command:
|
||||
```sh
|
||||
yay -S hilbish
|
||||
```
|
||||
If you want the latest and greatest, you can install and compile from the latest git commit
|
||||
Or from the latest `master` commit with:
|
||||
```sh
|
||||
yay -S hilbish-git
|
||||
```
|
||||
|
||||
### Manual Build
|
||||
#### Prerequisites
|
||||
- [Go 1.16](https://go.dev)
|
||||
- [Go 1.16+](https://go.dev)
|
||||
- GNU Readline
|
||||
|
||||
On Fedora, readline can be installed with:
|
||||
On Fedora or other RPM based distros, readline can be installed with:
|
||||
```
|
||||
sudo dnf install readline-devel
|
||||
```
|
||||
|
@ -66,11 +73,6 @@ On Debian/Ubuntu and distros based on them, it can be installed with:
|
|||
sudo apt install libreadline-dev
|
||||
```
|
||||
|
||||
On OpenSUSE, it can be installed with:
|
||||
```
|
||||
sudo zypper install readline-devel
|
||||
```
|
||||
|
||||
On Arch Linux, it can be installed with:
|
||||
```
|
||||
sudo pacman -S readline
|
||||
|
@ -79,48 +81,38 @@ sudo pacman -S readline
|
|||
#### Build
|
||||
First, clone Hilbish:
|
||||
```sh
|
||||
git clone --recursive https://github.com/Hilbis/Hilbish
|
||||
git clone --recursive https://github.com/Rosettea/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`)
|
||||
go get -d ./...
|
||||
```
|
||||
|
||||
And get dependencies and build:
|
||||
```sh
|
||||
go get -d all
|
||||
To build, run:
|
||||
```
|
||||
make dev
|
||||
```
|
||||
|
||||
If you `git checkout`'d the latest stable release, run
|
||||
`make build` instead of `make dev`.
|
||||
or want to experiment Hilbiline, instead run
|
||||
`make hilbiline`
|
||||
|
||||
#### Install
|
||||
`sudo make install`
|
||||
|
||||
### Uninstall
|
||||
```sh
|
||||
sudo make uninstall
|
||||
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.
|
||||
|
||||
# Contributing
|
||||
Any kind of contributions to Hilbish are welcome!
|
||||
Make sure to read [CONTRIBUTING.md](CONTRIBUTING.md) before getting started.
|
||||
|
||||
### Special Thanks To
|
||||
Everyone here who has contributed:
|
||||
Read [CONTRIBUTING.md](CONTRIBUTING.md) before getting started.
|
||||
|
||||
##### Thanks to everyone below who's contributed!
|
||||
<a href="https://github.com/Hilbis/Hilbish/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=Hilbis/Hilbish" />
|
||||
</a>
|
||||
|
||||
*Made with [contributors-img](https://contrib.rocks).*
|
||||
|
||||
### Credits
|
||||
- [This blog post](https://www.vidarholen.net/contents/blog/?p=878) which
|
||||
is how Hilbish now inserts a newline even if output doesn't have one.
|
||||
|
||||
# License
|
||||
Hilbish is licensed under the MIT license.
|
||||
[Read here](LICENSE) for more info.
|
||||
Hilbish is licensed under the MIT license!
|
||||
Read the [license here](LICENSE) for more info.
|
||||
|
||||
Images in the [assets](assets/) folder are under CC-BY-SA 4.0
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 58 KiB |
Binary file not shown.
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 114 KiB |
15
main.go
15
main.go
|
@ -32,6 +32,7 @@ var (
|
|||
|
||||
hooks bait.Bait
|
||||
defaultConfPath string
|
||||
defaultHistPath string
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
@ -43,7 +44,7 @@ func main() {
|
|||
|
||||
if defaultConfDir == "" {
|
||||
// we'll add *our* default if its empty (wont be if its changed comptime)
|
||||
if _, err := os.Stat(filepath.Join(confDir, "hilbish", "hilbishrc.lua")); os.IsNotExist(err) {
|
||||
if _, err := os.Stat(filepath.Join(confDir, "hilbish")); os.IsNotExist(err) {
|
||||
defaultConfPath = filepath.Join(homedir, "/.hilbishrc.lua")
|
||||
} else {
|
||||
defaultConfPath = filepath.Join(confDir, "hilbish", "hilbishrc.lua")
|
||||
|
@ -52,7 +53,17 @@ func main() {
|
|||
// else do ~ substitution
|
||||
defaultConfPath = filepath.Join(strings.Replace(defaultConfDir, "~", homedir, 1), ".hilbishrc.lua")
|
||||
}
|
||||
|
||||
if defaultHistDir == "" {
|
||||
// we'll add *our* default if its empty (wont be if its changed comptime)
|
||||
if _, err := os.Stat(filepath.Join(confDir, "hilbish")); os.IsNotExist(err) {
|
||||
defaultHistPath = filepath.Join(homedir, "/.hilbish-history")
|
||||
} else {
|
||||
defaultHistPath = filepath.Join(confDir, "hilbish", ".hilbish-history")
|
||||
}
|
||||
} else {
|
||||
// else do ~ substitution
|
||||
defaultHistPath = filepath.Join(strings.Replace(defaultHistDir, "~", homedir, 1), ".hilbishrc.lua")
|
||||
}
|
||||
helpflag := getopt.BoolLong("help", 'h', "Prints Hilbish flags")
|
||||
verflag := getopt.BoolLong("version", 'v', "Prints Hilbish version")
|
||||
setshflag := getopt.BoolLong("setshellenv", 'S', "Sets $SHELL to Hilbish's executed path")
|
||||
|
|
4
rl.go
4
rl.go
|
@ -14,7 +14,7 @@ type LineReader struct {
|
|||
// other gophers might hate this naming but this is local, shut up
|
||||
func NewLineReader(prompt string) *LineReader {
|
||||
readline.Completer = readline.FilenameCompleter
|
||||
readline.LoadHistory(homedir + "/.hilbish-history")
|
||||
readline.LoadHistory(defaultHistPath)
|
||||
|
||||
return &LineReader{
|
||||
Prompt: prompt,
|
||||
|
@ -31,7 +31,7 @@ func (lr *LineReader) SetPrompt(prompt string) {
|
|||
|
||||
func (lr *LineReader) AddHistory(cmd string) {
|
||||
readline.AddHistory(cmd)
|
||||
readline.SaveHistory(homedir + "/.hilbish-history")
|
||||
readline.SaveHistory(defaultHistPath)
|
||||
}
|
||||
|
||||
func (lr *LineReader) ClearInput() {
|
||||
|
|
1
vars.go
1
vars.go
|
@ -4,6 +4,7 @@ package main
|
|||
var (
|
||||
version = "v0.5.1"
|
||||
defaultConfDir = "" // ~ will be substituted for home, path for user's default config
|
||||
defaultHistDir = ""
|
||||
|
||||
prompt string // Prompt will always get changed anyway
|
||||
multilinePrompt = "> "
|
||||
|
|
|
@ -10,9 +10,9 @@ var (
|
|||
.. hilbish.xdg.data .. '/hilbish/libs/?/init.lua;'
|
||||
.. hilbish.xdg.data .. '/hilbish/libs/?/?.lua;'
|
||||
.. hilbish.xdg.data .. '/hilbish/libs/?.lua'
|
||||
.. hilbish.xdg.config .. '/?/init.lua'
|
||||
.. hilbish.xdg.config .. '/?/?.lua'
|
||||
.. hilbish.xdg.config .. '/?.lua'`
|
||||
.. hilbish.xdg.config .. '/hilbish/?/init.lua'
|
||||
.. hilbish.xdg.config .. '/hilbish/?/?.lua'
|
||||
.. hilbish.xdg.config .. '/hilbish/?.lua'`
|
||||
preloadPath = "/usr/share/hilbish/preload.lua"
|
||||
sampleConfPath = "/usr/share/hilbish/.hilbishrc.lua" // Path to default/sample config
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue