package main import ( "log" Z "github.com/rwxrob/bonzai/z" "github.com/rwxrob/conf" "github.com/rwxrob/github" "github.com/rwxrob/help" "github.com/rwxrob/kube" "github.com/rwxrob/pomo" "github.com/rwxrob/twitch" "github.com/rwxrob/uniq" "github.com/rwxrob/vars" "github.com/rwxrob/y2j" "github.com/rwxrob/yq" "github.com/rwxrob/z/git" "github.com/rwxrob/z/tmux" ) func init() { Z.Dynamic["uname"] = func() string { return Z.Out("uname", "-a") } Z.Dynamic["ls"] = func() string { return Z.Out("ls", "-l", "-h") } } func main() { // remove log prefixes log.SetFlags(0) // provide panic trace Z.AllowPanic = true // can run in multicall, or monolith, not both /* // MULTICALL (status, afk, etc. linked) // (no completion unless set for individual commands) // (requires creation of hard/sym links or copies) Z.Commands = map[string][]any{ // "conf": {conf.Cmd}, // bork cuz no multicall mode "yq": {yq.Cmd}, "y2j": {y2j.Cmd}, "status": {tmux, "update"}, "afk": {twitch.Cmd, "chat", "!afk"}, } Z.Run() */ Cmd.Run() } var Cmd = &Z.Cmd{ Name: `z`, Summary: `rwxrob's bonzai command tree`, Copyright: `Copyright 2021 Robert S Muhlestein`, License: `Apache-2.0`, Site: `rwxrob.tv`, Source: `git@github.com:rwxrob/z.git`, Issues: `github.com/rwxrob/z/issues`, Commands: []*Z.Cmd{ help.Cmd, conf.Cmd, vars.Cmd, y2j.Cmd, twitch.Cmd, tmux.Cmd, yq.Cmd, //goutil.Cmd, uniq.Cmd, pomo.Cmd, github.Cmd, git.Cmd, //update.Cmd, kube.Cmd, }, Shortcuts: Z.ArgMap{ "project": {"twitch", "bot", "commands", "edit", "project"}, "status": {"tmux", "update"}, "offscreen": {"chat", "!offscreen"}, "info": {"twitch", "bot", "commands", "file", "edit"}, "sync": {"twitch", "bot", "commands", "sync"}, "work": {"go", "work"}, "chat": {"twitch", "chat"}, "afk": {"twitch", "chat", "!afk"}, "isosec": {"uniq", "isosec"}, "isonan": {"uniq", "isonan"}, "uuid": {"uniq", "uuid"}, "epoch": {"uniq", "second"}, }, Description: ` Hi, I'm rwxrob.tv and this {{cmd .Name }} is my Bonzai™ tree. I am slowly replacing all my shell scripts and other Go utilities with Bonzai branches that I graft into this {{cmd .Name}} command. You are welcome to play around with it, but please know that I am radically changing things *daily*. Also check out https://github.com/rwxrob/foo for a sample template Bonzai tree to get started on your own. Here's some random output from the Dynamic *ls* function piped to the builtin *indent* function using {{ "{{ ls | indent 4 }}" }} Go template syntax: {{ ls | indent 4 }} That was a verbatim block because of the indent. `, }