Some generic cross-platform command line tools in go. This was principally to experiment with golang, and develop some sane project practices, such as the use of a make project shell.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
David Sugar 51155a75e6 config-binding (#19) 2 hours ago
.make config-binding (#19) 2 hours ago
cmd config-binding (#19) 2 hours ago
lib Fix config for repo (#12) 4 days ago
.gitattributes Release prep (#17) 2 days ago
.gitignore config-binding (#19) 2 hours ago Prep next release (#18) 2 days ago Gitea migration main docs (#3) 1 month ago Initial checkin 4 months ago
Makefile config-binding (#19) 2 hours ago Added vendoring support and distribution (#14) 3 days ago
go.mod fix-package-naming (#11) 4 days ago
go.sum Added vendoring support and distribution (#14) 3 days ago

About CommandIt

These are easy to setup cli tools that I may wish to have consistent and available on multiple platforms. To do so for easy cross-platform support and reasonable performance, I chose Go. to be generally consistent with other Go code I use MIT licensing.


Make "install" is sufficient to install these tools into the user's go path. This uses the GOPATH by default, and can be overridden with a PREFIX setting, such as PREFIX=/usr/local. The Makefile also makes it easy to cross-compile, as well as managing separate debug and release builds. It also should be easy to integrate with traditional OS packaging.

In git checkouts I create and manage a vendor directory outside of git. This is because it may generate different content when you update the go.mod file. Generating a vendor branch means it also can get into the stand-alone dist tarball, and that can then be used in network isolated build systems. Since network access is required to build without a vendor directory anyway, this has no real impact on performance. The vendor directory is only refreshed if the go.sum file changes.


A more complete overview of participation will be added in These tools are written in Go. I use go modules support, so this project can be cloned into any stand-alone directory and built there. I also use a front-end Makefile to simplify builds and offer basic project automation.

My Makefile includes a "dist" target, which produces a stand-alone tarball that can then be used to build install the tools detached from the repo. This is particularly useful for OS packaging. I include a "lint", "test", and "coverage" target to test and verify code. The default make builds binaries in target/{build-type} in a manner like rust cargo does, where they can then be tested. Cross-compiling goes into target/${GOOS}-${GOARCH}. Many of these special targets are standardized in the .make directory.


Support is offered thru I also have In the future maybe other means of support will become possible.