Today sveltosctl is using github.com/docopt/docopt-go as CLI framework.
But docopt-go is a bit outdated, as you can see from it's github commit history.
Therefore I would propose a refactoring towards cobra CLI framework (https://cobra.dev/) as this lib is pretty much the standard CLI framework for GO CLI utils.
Furthermore it has a living community and we can move sveltosctl to be more compatible to certain kubectl patterns.
Some remarks:
- It needs to be backwards compatible, means the output of all/certain commands are not changing
- it needs to be easily testable, without relying on any k8s clusters, means mocking k8s api.
- it needs to be easily extendable, eventually adding a plugin mechanism similar to kubectl.
This issue report should function as a general documentation about the progress.
Today sveltosctl is using
github.com/docopt/docopt-goas CLI framework.But docopt-go is a bit outdated, as you can see from it's github commit history.
Therefore I would propose a refactoring towards cobra CLI framework (https://cobra.dev/) as this lib is pretty much the standard CLI framework for GO CLI utils.
Furthermore it has a living community and we can move sveltosctl to be more compatible to certain kubectl patterns.
Some remarks:
This issue report should function as a general documentation about the progress.