Files
moby/daemon/command
Sebastiaan van Stijn e509a7cefe daemon/command: remove __dummy_command workaround for completion
This workaround was added in 3bb40af036 to
work around a limitation of Cobra, which didn't support completion if there
are no subcommands, because [Command.InitDefaultCompletionCmd] disabled
completion, as implicitly adding the hidden `completion` and `__complete`
subcommands would break binaries without subcommands that accepted positional
args.

This problem was fixed in Cobra v1.9.0 through [cobra@24ada7f], which now
dynamically adds the `completion` subcommand when invoked.

This patch removes the hidden `__dummy_command`, which was used to work around
the logic in Cobra < v1.9.0, and to make it enable completion regardless.

Completion should still work as usual:

    dockerd completion --help

    Usage:	dockerd completion [flags]
    ...

    source <(dockerd completion bash)
    dockerd --default-<tab>
    --default-address-pool   (Default address pools for node specific local networks)
    --default-cgroupns-mode  (Default mode for containers cgroup namespace ("host" | "private"))
    --default-gateway        (Default gateway IPv4 address for the default bridge network)
    --default-gateway-v6     (Default gateway IPv6 address for the default bridge network)
    --default-ipc-mode       (Default mode for containers ipc ("shareable" | "private"))
    --default-network-opt    (Default network options)
    --default-runtime        (Default OCI runtime for containers)
    --default-shm-size       (Default shm size for containers)
    --default-ulimit         (Default ulimits for containers)

[Command.InitDefaultCompletionCmd]: https://github.com/spf13/cobra/blob/v1.8.1/completions.go#L685-L698
[cobra@24ada7f]: 24ada7fe71

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-06 09:42:49 +01:00
..
2025-10-15 22:30:38 +02:00