Coral, a Cobra fork with nearly all its features, but only 4 dependencies
github.com
github.com
It's easy to use Coral as a drop-in replacement for Cobra in existing projects, just let gofmt do the heavy lifting for you:
gofmt -w -r '"github.com/spf13/cobra" -> "github.com/muesli/coral"' .
gofmt -w -r '"github.com/spf13/cobra/doc" -> "github.com/muesli/coral/doc"' .
gofmt -w -r 'cobra -> coral' .
go mod tidy
Having implemented something to do a similar one off refactor in java for thousands of files, that is a breath of fresh air. In java i had to go code -> AST -> perform manipulations -> generate code from AST (with inevitable long PR’s due to generated code not matching 1:1 with parsed original). After having gone through that i think if i had to repeat again with java I’d probably try harder to use structural find and replace.[1] https://docs.openrewrite.org/reference/yaml-format-reference
See: - [0] https://github.com/muesli/coral/blob/master/go.mod - [1] https://github.com/spf13/cobra/blob/master/go.mod
$ go mod init foo && go get github.com/spf13/cobra && wc -l go.sum
758 go.sum
$ go mod init foo && go get github.com/muesli/coral && wc -l go.sum
10 go.sum
(Number of lines in go.sum != number of transitive dependencies, of course, but the scale of the difference still hints at how much extra is being pulled into your project.)