DockerCLI/cli/command
Sebastiaan van Stijn 80b1285fec cli: use custom annotation for aliases
Cobra allows for aliases to be defined for a command, but only allows these
to be defined at the same level (for example, `docker image ls` as alias for
`docker image list`). Our CLI has some commands that are available both as a
top-level shorthand as well as `docker <object> <verb>` subcommands. For example,
`docker ps` is a shorthand for `docker container ps` / `docker container ls`.

This patch introduces a custom "aliases" annotation that can be used to print
all available aliases for a command. While this requires these aliases to be
defined manually, in practice the list of aliases rarely changes, so maintenance
should be minimal.

As a convention, we could consider the first command in this list to be the
canonical command, so that we can use this information to add redirects in
our documentation in future.

Before this patch:

    docker images --help

    Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]

    List images

    Options:
      -a, --all             Show all images (default hides intermediate images)
      ...

With this patch:

    docker images --help

    Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]

    List images

    Aliases:
      docker image ls, docker image list, docker images

    Options:
      -a, --all             Show all images (default hides intermediate images)
      ...

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-06-28 17:32:09 +02:00
..
builder Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
checkpoint completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
commands remove exec, push, pull, ps, images, info from "legacy" commands 2022-04-08 16:55:39 +02:00
completion Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
config completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
container cli: use custom annotation for aliases 2022-06-28 17:32:09 +02:00
context completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
formatter Fix psFormat's Size handling in config file 2022-06-07 12:48:56 +02:00
idresolver bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-23 00:28:55 +01:00
image cli: use custom annotation for aliases 2022-06-28 17:32:09 +02:00
inspect linting: fix incorrectly formatted errors (revive) 2022-03-28 10:37:25 +02:00
manifest lint: update some nolint comments: 2022-05-13 20:50:19 +02:00
network completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
node Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
plugin completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
registry completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
secret Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
service completion v2: some small follow-ups 2022-05-12 13:25:15 +02:00
stack Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
swarm Adopt Cobra completion v2 to support completion by CLI plugins 2022-05-12 12:59:10 +02:00
system cli: use custom annotation for aliases 2022-06-28 17:32:09 +02:00
task linting: fix incorrectly formatted errors (revive) 2022-03-28 10:37:25 +02:00
testdata Dynamically register kubernetes context store endpoint type. 2019-05-20 13:28:11 +01:00
trust lint: update some nolint comments: 2022-05-13 20:50:19 +02:00
volume Deflake TestVolumeCreateClusterOpts 2022-06-03 11:52:51 +02:00
cli.go cli: initializeFromClient(): detect swarm status from ping (if available) 2022-05-02 14:57:57 +02:00
cli_options.go Implement WithDefaultContextStoreConfig() DockerCliOption 2022-03-03 14:47:59 +01:00
cli_options_test.go bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-23 00:28:55 +01:00
cli_test.go cli: initializeFromClient(): detect swarm status from ping (if available) 2022-05-02 14:57:57 +02:00
context.go remove obsolete mutli-orchestrator support 2022-02-22 15:28:12 +01:00
context_test.go remove obsolete mutli-orchestrator support 2022-02-22 15:28:12 +01:00
defaultcontextstore.go remove obsolete mutli-orchestrator support 2022-02-22 15:28:12 +01:00
defaultcontextstore_test.go cli/command: remove deprecated io/ioutil and use t.TempDir() 2022-02-25 15:42:14 +01:00
events_utils.go updated vendoring 2017-09-01 19:41:06 -04:00
registry.go registry: don't call "/info" API endpoint to get default registry 2022-03-15 16:30:42 +01:00
registry_test.go registry: don't call "/info" API endpoint to get default registry 2022-03-15 16:30:42 +01:00
streams.go Extract streams helpers from command package to their own package to remove a cyclic dependency from command to internal/containerizedengine 2019-01-28 14:36:00 +01:00
trust.go Refactor content_trust cli/flags handling 2018-03-08 15:00:43 -05:00
utils.go cli/command: fix documentation of CopyToFile mentioning ioutil 2022-04-08 14:56:48 +02:00
utils_test.go cli/command: remove deprecated io/ioutil and use t.TempDir() 2022-02-25 15:42:14 +01:00