This replaces the visitAll recursive function with a test that verifies that the option is set for all commands and subcommands, so that it doesn't have to be modified at runtime. We currently still have to loop over all functions for the setValidateArgs call, but that can be looked at separately. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
58 lines
1.8 KiB
Go
58 lines
1.8 KiB
Go
package builder
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
|
|
"github.com/docker/cli/cli"
|
|
"github.com/docker/cli/cli/command"
|
|
"github.com/docker/cli/cli/command/image"
|
|
"github.com/docker/cli/internal/commands"
|
|
)
|
|
|
|
func init() {
|
|
commands.Register(newBuilderCommand)
|
|
commands.Register(func(c command.Cli) *cobra.Command {
|
|
return newBakeStubCommand(c)
|
|
})
|
|
}
|
|
|
|
// newBuilderCommand returns a cobra command for `builder` subcommands
|
|
func newBuilderCommand(dockerCLI command.Cli) *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "builder",
|
|
Short: "Manage builds",
|
|
Args: cli.NoArgs,
|
|
RunE: command.ShowHelp(dockerCLI.Err()),
|
|
Annotations: map[string]string{"version": "1.31"},
|
|
|
|
DisableFlagsInUseLine: true,
|
|
}
|
|
cmd.AddCommand(
|
|
newPruneCommand(dockerCLI),
|
|
// we should have a mechanism for registering sub-commands in the cli/internal/commands.Register function.
|
|
//nolint:staticcheck // TODO: Remove when migration to cli/internal/commands.Register is complete. (see #6283)
|
|
image.NewBuildCommand(dockerCLI),
|
|
)
|
|
return cmd
|
|
}
|
|
|
|
// newBakeStubCommand returns a cobra command "stub" for the "bake" subcommand.
|
|
// This command is a placeholder / stub that is dynamically replaced by an
|
|
// alias for "docker buildx bake" if BuildKit is enabled (and the buildx plugin
|
|
// installed).
|
|
func newBakeStubCommand(dockerCLI command.Streams) *cobra.Command {
|
|
return &cobra.Command{
|
|
Use: "bake [OPTIONS] [TARGET...]",
|
|
Short: "Build from a file",
|
|
RunE: command.ShowHelp(dockerCLI.Err()),
|
|
Annotations: map[string]string{
|
|
// We want to show this command in the "top" category in --help
|
|
// output, and not to be grouped under "management commands".
|
|
"category-top": "5",
|
|
"aliases": "docker buildx bake",
|
|
"version": "1.31",
|
|
},
|
|
DisableFlagsInUseLine: true,
|
|
}
|
|
}
|