There are several locations where the CLI is overly verbose because an extra command level is required. Here is a non-exhaustive list of examples:
geoips list plugins <interface_name> -> geoips list <interface_name>
geoips get plugin <interface_name> <plugin_name> -> geoips get <interface_name> <plugin_name>
We should find all instances where we can remove an intermediate command and still have the CLI make sense grammatically. geoips list algorithms makes just as much sense as geoips list plugins algorithms. In some cases, this will require adding an additional command for listing everything. For example, if we remove geoips list plugins in favor of geoips list <interface_name> we might want to add geoips list all-plugins or something similar.
Note that the examples given here all relate to <interface_name>. There may be other examples of subcommands that can be moved upwards.
Background and Motivation
This will reduce verbosity and makes the CLI feel more natural. It is a bit more like Kubernetes which seems to be a well thought-out CLI.
Checklist for Completion
[ ] Find and list in this issue all locations where we can and should remove verbosity.
[ ] Remove the appropriate command level and replace with the lower-level commands.
[ ] Determine where "all" commands should be added and add them where appropriate (e.g. geoips list all-plugins).
[ ] Ensure that unit tests continue to pass.
[ ] Update documentation as appropriate, auto-generating where possible.
Blocking issues
This is likely blocked by #573 or vice versa.
Requested Update
Description
There are several locations where the CLI is overly verbose because an extra command level is required. Here is a non-exhaustive list of examples:
geoips list plugins <interface_name>
->geoips list <interface_name>
geoips get plugin <interface_name> <plugin_name>
->geoips get <interface_name> <plugin_name>
We should find all instances where we can remove an intermediate command and still have the CLI make sense grammatically.
geoips list algorithms
makes just as much sense asgeoips list plugins algorithms
. In some cases, this will require adding an additional command for listing everything. For example, if we removegeoips list plugins
in favor ofgeoips list <interface_name>
we might want to addgeoips list all-plugins
or something similar.Note that the examples given here all relate to
<interface_name>
. There may be other examples of subcommands that can be moved upwards.Background and Motivation
This will reduce verbosity and makes the CLI feel more natural. It is a bit more like Kubernetes which seems to be a well thought-out CLI.
Checklist for Completion
geoips list all-plugins
).