New utilities for a new era.
Go to file
2024-08-12 17:53:43 -06:00
docs Merge branch 'strcmp' 2024-07-15 19:52:26 -06: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 Merge branch 'strcmp' 2024-07-15 19:52:26 -06:00
tests Makefile, .gitignore, tests/cc-compat.sh: brought up-to-date 2024-02-07 20:13:45 -07:00
.editorconfig .editorconfig: remove stale configure config 2024-02-17 23:25:35 -07:00
.gitignore Makefile, .gitignore, tests/cc-compat.sh: brought up-to-date 2024-02-07 20:13:45 -07:00
CONDUCT CONDUCT: wording 2024-06-05 17:27:13 -06:00
CONTRIBUTING CONDUCT: initial commit 2024-06-02 23:14:40 -06:00
COPYING initial commit 2023-07-23 19:49:57 -06:00
Makefile Merge branch 'intcmp' 2024-07-15 15:21:31 -06:00
README README: improvements, community links 2024-08-12 17:53:43 -06: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

Bonsais Harakit is an alternative to the standard POSIX utilities that aims to
be simpler, easier, and more powerful. These tools are the result of careful
examination of the current state common Unix utilities, POSIX-compliant and
otherwise, following frustrations with design decisions and implementation
details. They represent a vision of accomplishing everyday use cases with tools
that follow the Unix philosophy of “do one thing and do it well” without
clinging to the past.

The intent of Harakit is not to conform to or extend POSIX, like the GNU or BSD
utilities do, but to invent new utilities to perform the same tasks in more
intuitive ways. GNU and BSD extensions are convenient but often unhealthy,
forgetting the purposes of the tools they extend, or building into existing
utilities features that would be more useful as their own tools to be used
anywhere. Other utility sets aim to provide a number of fully-featured
programs to be used individually, Harakit utilities are meant to be easily
composable and work together in pipelines.

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


Building
========

Harakit utilities require a POSIX-compliant environment to compile, including a
C compiler and preprocessor (cc(1) and cpp(1) by default), an edition 2023 Rust
compiler (rustc(1) by default), bindgen(1), and a POSIX-compliant make(1)
utility.

To build and install:

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

To build with a different compiler than the default:

$ make CC=clang
$ make RUSTC=gccrs

To test the utilities:

$ make test

To remove all build and distributable files:

$ make clean


Contributing
============

See the CONTRIBUTING file for contribution guidelines.


Community
=========

xmpp://bonsai@covenant.murderu.us
irc://feeling.murderu.us/#bonsai


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>

UNIX Style, or cat -v Considered Harmful
<http://harmful.cat-v.org/cat-v/>


--
Copyright © 20232024 Emma Tebibyte <emma@tebibyte.media>
Copyright © 2024 DTB <trinity@trinity.moe>

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