Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've attempted to improve the UX by using Grumble's ability to have subcommands. This prevents us from having long commands with underscores that may a little uncomfortable type. Using subcommands may also make it intuitive to type out the commands as its similar to popular tools such as Docker.
Other minor changes that have been made
certificate-fingerprint
,interface
andconnect-agent
-no-banner
flag toproxy
to have the option not display the bannerCaveats
I believe using arguments instead of flags is more appropriate as values such as
ip
for theconnect-agent
is something that is required. But an issue arises in the command for removing routes because if values were not provided, it would then allow the user to select the routes to delete interactively. Grumble does allow optional arguments, but I haven't figured out how to use it. If I can have some help to make optional flag values into optional argument, then we can bring back the interactive selection. Otherwise we'd either have to drop the interactive selection or use flags instead of arguments.Notice: This is my first time writing code in Golang, so please let test the code extra carefully to make sure I havent broken anything even though everything works seems to work fine on my end.