1
0
forked from bonsai/harakit
New core utilities for a new era.
Go to file
2024-02-15 17:39:26 -07:00
docs merged rpn(1); closes #2 2024-02-07 19:23:51 -07:00
include GNUmakefile, intcmp(1), npc(1), scrut(1), str(1), strcmp(1), include/sysexits.h: added fallback header file for when systems don’t have sysexits.h(3) 2023-12-25 21:50:45 -07:00
src rpn(1): typo 2024-02-07 19:12:31 -07:00
tests Makefile, .gitignore, tests/cc-compat.sh: brought up-to-date 2024-02-07 20:13:45 -07:00
.editorconfig Makefile, getopt-rs: added getopt-rs library 2024-01-15 15:50:12 -07:00
.gitignore Makefile, .gitignore, tests/cc-compat.sh: brought up-to-date 2024-02-07 20:13:45 -07:00
CONTRIBUTING .editorconfig: added editor configuration; CONTRIBUTING: changed tabstop requirement to 4 2023-12-27 15:38:38 -07:00
COPYING initial commit 2023-07-23 19:49:57 -06:00
Makefile Makefile, .gitignore, tests/cc-compat.sh: brought up-to-date 2024-02-07 20:13:45 -07:00
README README: added cpp(1) as build dep 2024-02-15 17:39:26 -07:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

“Seek not to walk the path of the masters; seek what they sought.”
 Matsuo Basho

The Bonsai core utilities are the result of the careful examination of the
current state of POSIX and Unix utilies. The Unix Philosophy, “do one thing and
do it well” is its core but these tools do not cling to the names of the past.

The era of the original Unix tools has been long and fruitful, but they have
their flaws. The new, non-POSIX era of this project started with frustration
with the way certain tools work and how other projects that extend POSIX dont
make anything better.

This project will not follow in the footsteps of GNU; extensions of POSIX will
not be found here. GNU extensions are a gateway to the misuse of the shell. The
Bonsai core utilities will intentionally discourage use of the shell for
purposes beyond its scope.

See docs/ for more on the specific utilities currently implemented.

Building

The coreutils require minimal dependencies for building:

· bindgen(1)
· cc(1) with -idirafter
· cp(1p)
· cpp(1)
· make(1p)
· mkdir(1p)
· rustc(1) or equivalent
· sh(1p)

To build and install:

$ make
$ make PREFIX="/your/preferred/location" install

To build with a different compiler than the default:

$ make CC=clang # different C compiler than cc(1)
$ make RUSTC=gccrs # different Rust compiler than rustc(1)

To test the utilities:

$ make test

To remove all untracked files:

$ make clean

Read More

An Introduction to the Unix Shell
<https://porkmail.org/era/unix/shell>

Master Foo and the Ten Thousand Lines
<http://www.catb.org/~esr/writings/unix-koans/ten-thousand.html>

Master Foo Discourses on the Unix-Nature
<http://www.catb.org/~esr/writings/unix-koans/unix-nature.html>

Shell Programming!
<https://tldp.org/LDP/abs/html/why-shell.html>

--
This work © 20232024 by Emma Tebibyte is licensed under CC BY-SA 4.0. To view a
copy of this license, visit <http://creativecommons.org/licenses/by-sa/4.0/>