diff --git a/.gitignore b/.gitignore index 42e9f7c..5aaa548 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ go.work +dist go.work.sum diff --git a/build.yaml b/build.yaml new file mode 100644 index 0000000..5675177 --- /dev/null +++ b/build.yaml @@ -0,0 +1,13 @@ +targets: + - os: windows + arch: + - amd64 + + - os: linux + arch: + - amd64 + + - os: darwin + arch: + - amd64 + - arm64 diff --git a/description b/description deleted file mode 100644 index 7531c14..0000000 --- a/description +++ /dev/null @@ -1,15 +0,0 @@ - - The command allows YAML (and JSON, since all JSON is YAML) - files to be queried using a simple syntax that is nearly identical - to the popular stedolan/jq tool (written in C). In fact, uses - the same that the tool does (just without the Cobra). - - The first argument is the and almost always begins with - a dot (.). See the project for - exact syntax (until more documentation is updated here to contain - the same). - - The remaining arguments are the names of one or more files. If no - file argument is passed standard input is assumed (per UNIX filter - philosophy). Note that the special dash (-) filename is not - supported even though it was in the original tool. \ No newline at end of file diff --git a/go.go b/go.go index 38ed3f2..79d48f3 100644 --- a/go.go +++ b/go.go @@ -6,17 +6,19 @@ import ( "os" "strings" - "github.com/rwxrob/bonzai/help" Z "github.com/rwxrob/bonzai/z" + "github.com/rwxrob/fs/dir" "github.com/rwxrob/fs/file" + "github.com/rwxrob/help" + "github.com/rwxrob/term" + "gopkg.in/yaml.v3" ) var golang = &Z.Cmd{ Name: `go`, Summary: `go related helper actions`, - Aliases: []string{"rust"}, MinArgs: 1, - Commands: []*Z.Cmd{help.Cmd, gowork, genisrune}, + Commands: []*Z.Cmd{help.Cmd, gowork, genisrune, sh2slice, godist}, } var gowork = &Z.Cmd{ @@ -59,3 +61,82 @@ var genisrune = &Z.Cmd{ return nil }, } + +var sh2slice = &Z.Cmd{ + Name: `sh2slice`, + Summary: `splits a shell command into arguments`, + Commands: []*Z.Cmd{help.Cmd}, + Call: func(_ *Z.Cmd, args ...string) error { + list := []string{} + if len(args) == 0 { + args = append(args, term.Read()) + } + for _, a := range args { + // FIXME add awareness or globs and quoted segments + for _, aa := range strings.Fields(a) { + list = append(list, fmt.Sprintf("%q", aa)) + } + } + fmt.Println(strings.Join(list, ",")) + return nil + }, +} + +func _build(args ...string) error { + a := []string{`go`, `build`} + a = append(a, args...) + return Z.Exec(a...) +} + +var godist = &Z.Cmd{ + Name: `dist`, + Summary: `go distribution related commands`, + Commands: []*Z.Cmd{godistbuild}, +} + +type GoBuildParams struct { + Targets []GoBuildTarget + O map[string]any `yaml:",inline"` +} + +type GoBuildTarget struct { + OS string + Arch []string +} + +var godistbuild = &Z.Cmd{ + Name: `build`, + Summary: `build for for multiple architectures into dist dir`, + Commands: []*Z.Cmd{help.Cmd}, + Description: ` + This build looks for a build.yaml file in the current directory + and runs the build command on each building them all concurrently + into the *dist* directory where they are ready for upload to + GitHub as a release. Just add a README.md and run release. + `, + Call: func(_ *Z.Cmd, args ...string) error { + if !file.Exists(`build.yaml`) { + return _build(args...) + } + buf, err := os.ReadFile(`build.yaml`) + if err != nil { + return err + } + p := new(GoBuildParams) + if err := yaml.Unmarshal(buf, p); err != nil { + return err + } + os.RemoveAll(`dist`) + dir.Create(`dist`) + for _, target := range p.Targets { + for _, arch := range target.Arch { + log.Printf("Building for %v/%v", target.OS, arch) + name := fmt.Sprintf("%v_%v_%v", dir.Name(), target.OS, arch) + os.Setenv(`GOOS`, target.OS) + os.Setenv(`GOARCH`, arch) + _build(`-o`, `dist/`+name) + } + } + return nil + }, +} diff --git a/go.mod b/go.mod index f4eb140..6ec0c75 100644 --- a/go.mod +++ b/go.mod @@ -3,13 +3,16 @@ module github.com/rwxrob/z go 1.18 require ( - github.com/rwxrob/bonzai v0.1.4 - github.com/rwxrob/config v0.3.5 - github.com/rwxrob/fs v0.4.4 - github.com/rwxrob/twitch v0.2.7 - github.com/rwxrob/uniq v0.1.4 - github.com/rwxrob/y2j v0.3.4 - github.com/rwxrob/yq v0.2.3 + github.com/rwxrob/bonzai v0.3.3 + github.com/rwxrob/config v0.4.2 + github.com/rwxrob/fs v0.5.0 + github.com/rwxrob/help v0.2.2 + github.com/rwxrob/term v0.2.6 + github.com/rwxrob/twitch v0.2.8 + github.com/rwxrob/uniq v0.1.5 + github.com/rwxrob/y2j v0.3.5 + github.com/rwxrob/yq v0.2.4 + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b ) require ( @@ -24,21 +27,20 @@ require ( github.com/mikefarah/yq/v4 v4.24.2 // indirect github.com/rogpeppe/go-internal v1.8.1 // indirect github.com/rwxrob/fn v0.3.3 // indirect - github.com/rwxrob/json v0.5.1 // indirect + github.com/rwxrob/json v0.6.0 // indirect github.com/rwxrob/scan v0.6.1 // indirect github.com/rwxrob/structs v0.5.1 // indirect - github.com/rwxrob/term v0.2.5 // indirect github.com/rwxrob/to v0.4.5 // indirect + github.com/rwxrob/yaml v0.1.0 // indirect github.com/timtadh/data-structures v0.5.3 // indirect github.com/timtadh/lexmachine v0.2.2 // indirect - golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 // indirect + golang.org/x/crypto v0.0.0-20220408190544-5352b0902921 // indirect golang.org/x/mod v0.5.1 // indirect - golang.org/x/net v0.0.0-20220403103023-749bd193bc2b // indirect - golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12 // indirect + golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 // indirect + golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f // indirect golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect golang.org/x/text v0.3.7 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index b1a013b..ec8a7ca 100644 --- a/go.sum +++ b/go.sum @@ -59,6 +59,12 @@ github.com/rwxrob/bonzai v0.1.2 h1:IZEInX+elsE8PY4k4sn1rmiX+pQsnhGGtqIivLPV5oE= github.com/rwxrob/bonzai v0.1.2/go.mod h1:on5cTc9jrGPRGYWRxfOk0N6z6ve1Er4PXj1UI1KNZMc= github.com/rwxrob/bonzai v0.1.4 h1:oQvectF1siAHF2AMwJ9YOQXbBHvyVPo2XB3RikduIgc= github.com/rwxrob/bonzai v0.1.4/go.mod h1:on5cTc9jrGPRGYWRxfOk0N6z6ve1Er4PXj1UI1KNZMc= +github.com/rwxrob/bonzai v0.1.6 h1:Z7r97Ib0OPeWiPS3QeDJkSPTGpPXH3RtAxY54f15Mok= +github.com/rwxrob/bonzai v0.1.6/go.mod h1:on5cTc9jrGPRGYWRxfOk0N6z6ve1Er4PXj1UI1KNZMc= +github.com/rwxrob/bonzai v0.1.8 h1:7uyTBf68ctMf/K1ejItV0nuPOj5hJUznlufd7isRqDw= +github.com/rwxrob/bonzai v0.1.8/go.mod h1:on5cTc9jrGPRGYWRxfOk0N6z6ve1Er4PXj1UI1KNZMc= +github.com/rwxrob/bonzai v0.3.3 h1:MKD0qSLXjuwn97nQmb/ZnumEStvtiISy0jZhYedX6YQ= +github.com/rwxrob/bonzai v0.3.3/go.mod h1:gA456ranskXpIEEuldHvWHPO53IA/FyMOWaVxcbpmhI= github.com/rwxrob/config v0.2.1 h1:W53hExSNj2PtRRTuRXklruzVuOZ9LB8SDo9MC0qRiXQ= github.com/rwxrob/config v0.2.1/go.mod h1:I2Diy79ZQPlanERtvt4VCSvW3jyCHeJ0JXksJMAz8xY= github.com/rwxrob/config v0.3.0 h1:s6YQ82+lTKzi/YZRN0PmHOGf8GQXGtGy1ZwOzcfsmyk= @@ -69,6 +75,10 @@ github.com/rwxrob/config v0.3.4 h1:TNUSmiI/pGSw7q7ifPDh2rvdDW5yLxrk36vGlZDNiRI= github.com/rwxrob/config v0.3.4/go.mod h1:4GrPcaQpaVl9G+lvyOuZnR9s+ldD1EmPsEjGgYiXvwA= github.com/rwxrob/config v0.3.5 h1:lLd1a+syQEcP5onRHM3qyx56wWpM1LbwYWRx3ikbrh0= github.com/rwxrob/config v0.3.5/go.mod h1:JGnh04/tJqBKAZIIvk/f1t5S1BeKqrhwnwyACBHwVO4= +github.com/rwxrob/config v0.3.6 h1:EExzvGUfiEq9mx2YWa/YvOslgZRTcdnTuw6J/QU4e+E= +github.com/rwxrob/config v0.3.6/go.mod h1:JGnh04/tJqBKAZIIvk/f1t5S1BeKqrhwnwyACBHwVO4= +github.com/rwxrob/config v0.4.2 h1:ZD3ZUO+p/kH+4k8/OSm3bHEfTKEEFB9v3LruwYSGGYc= +github.com/rwxrob/config v0.4.2/go.mod h1:WUQz7JHIpD8T2ejEZq06Nk6/Tm8Z1Oyhsw+X5iiTYKc= github.com/rwxrob/fn v0.1.0 h1:vlQOPxZ77IlXSIDu2eIkuQgMtInlMNRHqwgKfkNAHAA= github.com/rwxrob/fn v0.1.0/go.mod h1:omPqOqEB+dDna09z5pi5YFxq4IZqDvv3wFPUCES5LvY= github.com/rwxrob/fn v0.3.0 h1:R4kcZhInEc9Fn3lsWbn3O6ZOoZ/D43Y1l3SS5Nxm1wc= @@ -87,10 +97,18 @@ github.com/rwxrob/fs v0.4.3 h1:ntu9TZnk7NHd1Yen+p4+xruBmkQMugKtFU0OLfAMa+M= github.com/rwxrob/fs v0.4.3/go.mod h1:vO8AeluD7rnrO7zC54745xTEBFgHPUpHL0hbp1NnsVo= github.com/rwxrob/fs v0.4.4 h1:SJ0EK5tU9Uijse6Ej4ZN4iNfTP7D5H0IlANWiX2Qt9E= github.com/rwxrob/fs v0.4.4/go.mod h1:vO8AeluD7rnrO7zC54745xTEBFgHPUpHL0hbp1NnsVo= +github.com/rwxrob/fs v0.5.0 h1:1AcZUMBzYhippXl0RfYb+KMo67Sj+e5eSUkOKTx2rUU= +github.com/rwxrob/fs v0.5.0/go.mod h1:vO8AeluD7rnrO7zC54745xTEBFgHPUpHL0hbp1NnsVo= +github.com/rwxrob/help v0.1.4 h1:jPHlHRWPJCxu9wrVd8DnYRgDkr+0sBU5+Yyg9zeeLq0= +github.com/rwxrob/help v0.1.4/go.mod h1:Pufb06fgyuX9iBcAOI55KPm9BC9RMV95ZT7Vi5BzD70= +github.com/rwxrob/help v0.2.2 h1:lGfKy4jY7F3ZbnPY9KOYVLAJu57YQoS3wWts2Q/pLW8= +github.com/rwxrob/help v0.2.2/go.mod h1:48iC8EfMJOKmVpEeGg/7TR0xk0LTf8ML6TkQ1Fetk1A= github.com/rwxrob/json v0.4.1 h1:b4ToZe4mrQO8rRL/kRFglzZszyZZnGv6JRHj6jrI3f4= github.com/rwxrob/json v0.4.1/go.mod h1:DU3TQKCWY4bK7sQ0wu80cRmTs96b6M//OYvT7Eg2mJA= github.com/rwxrob/json v0.5.1 h1:RmTP3bUHvnDFCptVmDbxPjMznQ99sReno2z7U7jDP9w= github.com/rwxrob/json v0.5.1/go.mod h1:DU3TQKCWY4bK7sQ0wu80cRmTs96b6M//OYvT7Eg2mJA= +github.com/rwxrob/json v0.6.0 h1:wUXssIuuIirpeNBDkGN8zz0SUcQ74DF4/8SCdf4iUwA= +github.com/rwxrob/json v0.6.0/go.mod h1:BYaPIp+4cI64f7jdqkaVAjqU/HSIiwkqPNDr9tTUvRQ= github.com/rwxrob/scan v0.6.1 h1:KMGi/kV7TY4pcVo8H/HVwwyQZ2gBFNQI3g7tT121Voo= github.com/rwxrob/scan v0.6.1/go.mod h1:eF28AgH3YUvP7E9UrhjePRUyLq3Gh7+fR28P7Z/Ku4E= github.com/rwxrob/structs v0.5.0 h1:pjLsfyYHS+gB1CtzRj3H39wRYL4lI5pTpFf8kl91guw= @@ -109,6 +127,8 @@ github.com/rwxrob/term v0.2.3 h1:5wjHrzplE8YlkCCox+FEJCmL9aaYuZW4+GznID0embs= github.com/rwxrob/term v0.2.3/go.mod h1:II0qQ7aHUdPniZCAPWOdYwugcZqdmRmEWIJQN7Z8NA0= github.com/rwxrob/term v0.2.5 h1:CF6oqLJkcMSS5n2ctKeWBi9llRMJxPBI8opLyoCs2Ho= github.com/rwxrob/term v0.2.5/go.mod h1:II0qQ7aHUdPniZCAPWOdYwugcZqdmRmEWIJQN7Z8NA0= +github.com/rwxrob/term v0.2.6 h1:C8BqqHaEh8MGYp1cVrPRlDAYPEK3HfvhGjf7l5AvnV8= +github.com/rwxrob/term v0.2.6/go.mod h1:II0qQ7aHUdPniZCAPWOdYwugcZqdmRmEWIJQN7Z8NA0= github.com/rwxrob/to v0.2.1 h1:ZYBNEa8LJT5VDQUHm2wSwiRf61xSqU87UqbYvitV3eY= github.com/rwxrob/to v0.2.1/go.mod h1:8qdgCWkh50Avs8sRpV6/P7lAQgVf3KLRSKMZahV/W48= github.com/rwxrob/to v0.4.5 h1:ILFn40Zd8Tbz0+vmMcA9WyBkAZzeIltr39STLeoxP/o= @@ -133,12 +153,16 @@ github.com/rwxrob/twitch v0.2.6 h1:JMOxI5Cz8WvRQlCZFFKErS5i3u3DQKaXiKmJriIqNWk= github.com/rwxrob/twitch v0.2.6/go.mod h1:8LWou349FNsYtoMQCtGzcfyiJDRYjWpm5O6AIcmB3SM= github.com/rwxrob/twitch v0.2.7 h1:RGPjj0lL9IczkQSrb3EZKx2iqT1HO4OmFPoQEgl/4eA= github.com/rwxrob/twitch v0.2.7/go.mod h1:8LWou349FNsYtoMQCtGzcfyiJDRYjWpm5O6AIcmB3SM= +github.com/rwxrob/twitch v0.2.8 h1:6g/MnOSzEpL3QJGq19C5xbdj28+ThR4cc4Fq0oIG4rk= +github.com/rwxrob/twitch v0.2.8/go.mod h1:fYDRNxS5BvEJGBAu+0j+uDsnyVZ0PcGR1W4TcxVBlvI= github.com/rwxrob/uniq v0.1.0 h1:Lch5H6GF8zDYjhJajpUNlINp0QNqzXY2y/LwuXRHJCA= github.com/rwxrob/uniq v0.1.0/go.mod h1:IoKpWgQjmzRvt3HshczYKrauPn0G1g+/KVqjfPWS/rU= github.com/rwxrob/uniq v0.1.2 h1:CP9QlaoVLluf4WIrVIUSpbZoB0pQIANeM5T42QTOYVM= github.com/rwxrob/uniq v0.1.2/go.mod h1:RPCYxG6825mzXwDIBFrxTjYQpQo4KqWqMjl/F3a6rjk= github.com/rwxrob/uniq v0.1.4 h1:h9SRKz85CnPbJV04oy9AC2l1q03JurE8YdWPypHU0o8= github.com/rwxrob/uniq v0.1.4/go.mod h1:SOm7nNJ9JRoFcjBTQ1Ns4yi55jPIHn8ngg/fG3KQVoQ= +github.com/rwxrob/uniq v0.1.5 h1:U8JbO6Im7k06mwJajpfoGCsZ1Id6LdYSlMRx3cGrnbA= +github.com/rwxrob/uniq v0.1.5/go.mod h1:JVn5OM29Q4McKovJ5NlAIf+Ps9RvDdoqcdm7mWIWZ1c= github.com/rwxrob/y2j v0.3.0 h1:iaYmvRJVi9EMFlA0VSrLZiHXzUqDNOyTkGyjBqR4ZA0= github.com/rwxrob/y2j v0.3.0/go.mod h1:/3eS+LPnOF1F2VfoqZr3Upkr8q4ByziAi3eB6FIgzoE= github.com/rwxrob/y2j v0.3.1 h1:qOCU7J6g0Q/7KlLAabCMLx6/wG1/NelG6QTOVpESAQg= @@ -147,6 +171,10 @@ github.com/rwxrob/y2j v0.3.3 h1:Yao7rsUisg8PFkeTuzpxG8h0YyMs247X9AMxipXLd1Q= github.com/rwxrob/y2j v0.3.3/go.mod h1:2rpB4EwtRFw5elJoRC5fDx8wx0+7M+nfGSYX3RtW0BI= github.com/rwxrob/y2j v0.3.4 h1:Y5jrZs+lOYTwieLGSdsYp2Pr1IDTn9/4+T6YmYHRm/Y= github.com/rwxrob/y2j v0.3.4/go.mod h1:oLMYbRcMwt3GyzrNVKA7LVSzUWns3KCxWRfMrrFLHIY= +github.com/rwxrob/y2j v0.3.5 h1:rvxc0iwMIc0phkih802LHx+r7Osz/ziw2yhXnuFt2Lo= +github.com/rwxrob/y2j v0.3.5/go.mod h1:2DGHQskILi88IrACDZMUvuDauPXWtQ3pXWsQhImuMiQ= +github.com/rwxrob/yaml v0.1.0 h1:uTPB4kX/ndYe73slnIosz0Zo/ZVbnIg9z99yZ4bk0iU= +github.com/rwxrob/yaml v0.1.0/go.mod h1:4EjI8cJ33zheXgIF3r/FG2CpQNfLfgWEDvNE4r5zR0U= github.com/rwxrob/yaml2json v0.1.0 h1:9ZyxAHZaL1n88tmTDKddz/o2vx3j3ygPuUFfmV85BNs= github.com/rwxrob/yaml2json v0.1.0/go.mod h1:LZv0PcOqzj7q7afI3YRiPogmLHAdv579f/YM/6vcQrg= github.com/rwxrob/yq v0.1.0 h1:sKvtGTmrOPJ0iBL0qaymSahjYCwFdW8+d5TKdhPoJBQ= @@ -157,6 +185,8 @@ github.com/rwxrob/yq v0.2.2 h1:l8WRm+G5haB09rYaKwRlVaYEXTFG7O4QUDMB0f9bRUk= github.com/rwxrob/yq v0.2.2/go.mod h1:j+RRYbyLSP/ioqD/LRDcAU0NDMKSElt/fQvfrft2Kxw= github.com/rwxrob/yq v0.2.3 h1:7eYCOrrhqn9eZ+gYUVjPtpSyaNoEhs1Z+wDR3WOcDqY= github.com/rwxrob/yq v0.2.3/go.mod h1:Gy4DVShCPq5Md2PpmHaUdyS8KKbJxUy4OOmGawls/Ao= +github.com/rwxrob/yq v0.2.4 h1:NMQLDM/wBYN9IgJC0NlxcDs9COC/fDIdCi5DC9ijvUA= +github.com/rwxrob/yq v0.2.4/go.mod h1:wNpZOJzkbSTFqRqO3yYsLUTVcHc6vGX67Q0n4+eCdfU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -170,6 +200,8 @@ golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 h1:S25/rfnfsMVgORT4/J61MJ golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 h1:tkVvjkPTB7pnW3jnid7kNyAMPVWllTNOf/qKDze4p9o= golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220408190544-5352b0902921 h1:iU7T1X1J6yxDr0rda54sWGkHgOp5XJrqm79gcNlC2VM= +golang.org/x/crypto v0.0.0-20220408190544-5352b0902921/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -179,6 +211,8 @@ golang.org/x/net v0.0.0-20220325170049-de3da57026de h1:pZB1TWnKi+o4bENlbzAgLrEbY golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220403103023-749bd193bc2b h1:vI32FkLJNAWtGD4BwkThwEy6XS7ZLLMHkSkYfF8M0W0= golang.org/x/net v0.0.0-20220403103023-749bd193bc2b/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 h1:EN5+DfgmRMvRUrMGERW2gQl3Vc+Z7ZMnI/xdEpPSf0c= +golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -197,6 +231,8 @@ golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 h1:kHVeDEnfKn3T238CvrUcz6KeE golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12 h1:QyVthZKMsyaQwBTJE04jdNN0Pp5Fn9Qga0mrgxyERQM= golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f h1:8w7RhxzTVgUzw/AH/9mUV5q0vMgy40SQRursCcfmkCw= +golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/go.work.off b/go.work.off index 898938c..8aa6792 100644 --- a/go.work.off +++ b/go.work.off @@ -3,7 +3,9 @@ go 1.19 use ( . ../bonzai + ../help ../config + ../update ../fn ../fs ../scan diff --git a/main.go b/main.go index e50bf09..9879059 100644 --- a/main.go +++ b/main.go @@ -1,19 +1,24 @@ package main import ( - "log" - - "github.com/rwxrob/bonzai/help" Z "github.com/rwxrob/bonzai/z" "github.com/rwxrob/config" + "github.com/rwxrob/help" "github.com/rwxrob/twitch" "github.com/rwxrob/uniq" + + //"github.com/rwxrob/update" "github.com/rwxrob/y2j" "github.com/rwxrob/yq" ) func main() { - log.SetFlags(0) + + // remove log prefixes + // log.SetFlags(0) + + // provide panic trace + Z.AllowPanic = true // can run in multicall, or monolith, not both @@ -46,6 +51,7 @@ func main() { "uuid": {"uniq", "uuid"}, "epoch": {"uniq", "second"}, } + Cmd.Run() } @@ -53,10 +59,17 @@ func main() { var Cmd = &Z.Cmd{ Name: `z`, Summary: `rwxrob's bonzai command tree`, - Version: `v0.0.1`, + Version: `v0.1.5`, Copyright: `Copyright 2021 Robert S Muhlestein`, License: `Apache-2.0`, Commands: []*Z.Cmd{ - help.Cmd, config.Cmd, y2j.Cmd, twitch.Cmd, tmux, yq.Cmd, golang, uniq.Cmd, + help.Cmd, config.Cmd, y2j.Cmd, twitch.Cmd, tmux, yq.Cmd, golang, + uniq.Cmd, //update.Cmd, }, + Description: ` + Hi, I'm rwxrob and this is my Bonzai™ tree. I am + slowly replacing all my shell scripts and other Go utilities with + Bonzai branches that I graft into this *z* command. You are welcome + to play around with it, but please know that I am radically changing + things *daily*.`, } diff --git a/tmux.go b/tmux.go index 47055fd..01d9edf 100644 --- a/tmux.go +++ b/tmux.go @@ -3,8 +3,8 @@ package main import ( "strings" - "github.com/rwxrob/bonzai/help" Z "github.com/rwxrob/bonzai/z" + "github.com/rwxrob/help" ) var tmux = &Z.Cmd{