bish
etc
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bish
-
Show HN: Just.sh – compiler that turns Justfiles into portable shell scripts
https://github.com/batsh-dev-team/Batsh
https://github.com/tdenniston/bish
(Just fyi. I've been collecting links to similar things because of Reasons).
-
Pure Bash Bible
I'd love to see a little language which compiles to _readable_ bash. Could it be so hard? There's a dead project that comes up now and then called bish.
https://github.com/tdenniston/bish
-
Ask HN: Let's Build CheckStyle for Bash?
Oh people have tried - here are a few https://stackoverflow.com/questions/10239235/are-there-any-l...
I vaguely remember quite liking bish when I saw it years ago https://github.com/tdenniston/bish but it looks like no commits in 6 years.
This shelljs thing looks more promising, but really tedious to use https://github.com/shelljs/shelljs - shell.rm('-rf', 'out/Release'); I'd rather suffer proper bash than have to do that sort of thing.
Nothing seems to have really caught on so far. Bash is easy to learn and hack on, and before you know it, that simple install.sh that started out moving a few files around is 5000 lines, unmaintainable, and critical to bootstrapping your software :)
etc
-
Starship.rs: minimal, fast prompt for any shell
Since this is now a share your prompt thread, here's mine:
https://github.com/rollcat/etc/tree/master/cmd/prompter
It's quite portable (didn't test on Windows though); ~170 lines of Go; no dependencies outside of stdlib; calls no external commands; supports SSH, git, Docker, nix, and virtualenv; extremely simple to hack on.
-
What is in that .git directory?
It's fairly easy to grab info from .git for your own purposes. For example, the program that generates my PS1 peeks there (without wasting precious cycles on shelling out to the git command) to find the current branch we're on:
https://github.com/rollcat/etc/blob/b2fd739/cmd/prompter/mai...
-
Pure Bash Bible
Depends on what you're trying to do. If you're shelling out to git(1) or docker(1), rather than e.g. recursively checking for the presence of .git in parent directories, or inspecting ~/.docker/config.json, then the fork+exec overhead is already quite significant. Next if you're parsing ~/.docker/config.json in shell, you're most likely either asking for trouble or (again) shelling out to jq. Writing it all in an interpreted language means you're paying the cost of interpreter startup, which on underpowered systems can take hundreds of milliseconds even when idle. OTOH loading a static binary to memory happens only once, and with Go you can trivially cross-compile.
I also have a fallback shell one-liner, without any of the fanciness like displaying the current git branch:
https://github.com/rollcat/etc/tree/master/cmd/prompter#i-li...
What are some alternatives?
testing-in-bash - Bash test framework comparison
shunit2 - shUnit2 is a xUnit based unit test framework for Bourne based shell scripts.
meowatch - watch fs changes and meow
hck - A sharp cut(1) clone.
babashka - Native, fast starting Clojure interpreter for scripting
pure-bash-bible - 📖 A collection of pure bash alternatives to external processes.
zfsbootmenu - ZFS Bootloader for root-on-ZFS systems with support for snapshots and native full disk encryption
templates-cruft
shfmt - Dockernized shfmt. This formats shell script.
ShellCheck - ShellCheck, a static analysis tool for shell scripts