Update README.md

pull/2/head
rwxrob 2 years ago
parent 2258abe6b4
commit 763bafaff4
No known key found for this signature in database
GPG Key ID: 2B9111F33082AE77

@ -1,13 +1,58 @@
# Bonzai, Well-Tended CLI Command Trees for Gophers
# Bonzai! CLI Command Trees for Discerning Gophers
Bonzai commands are unlike anything you've probably encountered so far,
no getopt dashes, no ugly commander interface to learn, no 12637 lines
of shell tab completion bloat to source before it will work, just well
manicured commands organized into rooted node trees for your
command-line, nested-tab-completing enjoyment with built-in (optional)
help documentation that can easily be marshalled into JSON and presented
either as text or well-styled HTML. Think "readthedocs" but served
locally from your Bonzai command-line apps themselves.
[![Go Version](https://img.shields.io/github/go-mod/go-version/rwxrob/bonzai)](https://tip.golang.org/doc/go1.18)
[![GoDoc](https://godoc.org/github.com/rwxrob/bonzai?status.svg)](https://godoc.org/github.com/rwxrob/bonzai)
[![License](https://img.shields.io/badge/license-Apache2-brightgreen.svg)](LICENSE)
[![Go Report
Card](https://goreportcard.com/badge/github.com/rwxrob/bonzai)](https://goreportcard.com/report/github.com/rwxrob/bonzai)
Bonzai command trees are unlike anything you've probably encountered so
far, no getopt dashes (we kind of hate them), no ugly commander
interface to learn, no 12637 lines of shell tab completion bloat to
source before your command will complete, just well manicured
nested-tab-complete-with-magical-aliases-enabled commands organized into
rooted node trees for your command-line enjoyment. Your right-pinky will
be particularly grateful.
## Installation
🎉 ***Bonzai shamelessly requires Go 1.18+*** 💋
1. Install Go 1.18 and the tooling your require for it
1. `go install github.com/rwxrob/bonzai@latest`
1. `import "github.com/rwxrob/bonzai"`
1. Consider using the [template][] to get started
[template]: <https://github.com/rwxrob/bonzai-template>
😎 *Yes, we use the wonderful new generics within the [`filter`](filter)
subpackage.*
## Embedded Text or Web Docs FTW!
And, all the documentation for your command tree goes *inside* the
binary (if you want). That's right. Portable, text or web-enabled "man"
pages without the man page. You can use one of the composable
interactive-color-terminal-sensing help documentation commands like
`cmd.Help` that will easily marshal into JSON, or text, or well-styled
HTML locally while enabling you to write your embedded docs in
simplified CommonMark. Think "readthedocs" but without the Internet
dependency. And if you don't want `cmd.Help` you don't need it. You can
even write your own composable Bonzai command
or pick from a rich ecosystem of embeddable Bonzai command trees
available from anywhere on the Internet or maintained by the Bonzai
project. No registries to worry about. Just use good 'ol Go module imports are all that are need to share your creations.
## Contributors/PRs Welcome
*... especially for "Completers" and Runtime Detection.*
Speaking of sharing, why not send a PR for your addition to the ever
growing collection of `comp` subpackage `Completers` for everything from
days of the week, to tab-driven inline math calculations, to a list of
all the listening ports running on your current system.
[CONTRIBUTING](CONTRIBUTING)
## "It's spelled bonsai/banzai."
@ -24,9 +69,19 @@ works out just fine for us.
Then, of course, there's the image of Buckaroo invoked every time we say
the name. In fact, I think we have our new theme song.
## What People Are Saying
> "It's like a modular, multicall BusyBox builder for Go with built in
> completion and embedded documentation support."
> "The utility here is that Bonzai lets you maintain your own personal
> 'toolbox' with built in auto-complete that you can assemble from
> various Go modules. Individual commands are isolated and unaware of
> each other and possibly maintained by other people." (tadasv123)
## Example GitHub Template
<https://github.com/rwxrob/template-bonzai>
<https://github.com/rwxrob/bonzai-template>
## Design Considerations

Loading…
Cancel
Save