github.1git.de/docker/cli@v26.1.3+incompatible/cli/command/commands/commands.go (about)

     1  package commands
     2  
     3  import (
     4  	"os"
     5  
     6  	"github.com/docker/cli/cli/command"
     7  	"github.com/docker/cli/cli/command/builder"
     8  	"github.com/docker/cli/cli/command/checkpoint"
     9  	"github.com/docker/cli/cli/command/config"
    10  	"github.com/docker/cli/cli/command/container"
    11  	"github.com/docker/cli/cli/command/context"
    12  	"github.com/docker/cli/cli/command/image"
    13  	"github.com/docker/cli/cli/command/manifest"
    14  	"github.com/docker/cli/cli/command/network"
    15  	"github.com/docker/cli/cli/command/node"
    16  	"github.com/docker/cli/cli/command/plugin"
    17  	"github.com/docker/cli/cli/command/registry"
    18  	"github.com/docker/cli/cli/command/secret"
    19  	"github.com/docker/cli/cli/command/service"
    20  	"github.com/docker/cli/cli/command/stack"
    21  	"github.com/docker/cli/cli/command/swarm"
    22  	"github.com/docker/cli/cli/command/system"
    23  	"github.com/docker/cli/cli/command/trust"
    24  	"github.com/docker/cli/cli/command/volume"
    25  	"github.com/spf13/cobra"
    26  )
    27  
    28  // AddCommands adds all the commands from cli/command to the root command
    29  func AddCommands(cmd *cobra.Command, dockerCli command.Cli) {
    30  	cmd.AddCommand(
    31  		// commonly used shorthands
    32  		container.NewRunCommand(dockerCli),
    33  		container.NewExecCommand(dockerCli),
    34  		container.NewPsCommand(dockerCli),
    35  		image.NewBuildCommand(dockerCli),
    36  		image.NewPullCommand(dockerCli),
    37  		image.NewPushCommand(dockerCli),
    38  		image.NewImagesCommand(dockerCli),
    39  		registry.NewLoginCommand(dockerCli),
    40  		registry.NewLogoutCommand(dockerCli),
    41  		registry.NewSearchCommand(dockerCli),
    42  		system.NewVersionCommand(dockerCli),
    43  		system.NewInfoCommand(dockerCli),
    44  
    45  		// management commands
    46  		builder.NewBuilderCommand(dockerCli),
    47  		checkpoint.NewCheckpointCommand(dockerCli),
    48  		container.NewContainerCommand(dockerCli),
    49  		context.NewContextCommand(dockerCli),
    50  		image.NewImageCommand(dockerCli),
    51  		manifest.NewManifestCommand(dockerCli),
    52  		network.NewNetworkCommand(dockerCli),
    53  		plugin.NewPluginCommand(dockerCli),
    54  		system.NewSystemCommand(dockerCli),
    55  		trust.NewTrustCommand(dockerCli),
    56  		volume.NewVolumeCommand(dockerCli),
    57  
    58  		// orchestration (swarm) commands
    59  		config.NewConfigCommand(dockerCli),
    60  		node.NewNodeCommand(dockerCli),
    61  		secret.NewSecretCommand(dockerCli),
    62  		service.NewServiceCommand(dockerCli),
    63  		stack.NewStackCommand(dockerCli),
    64  		swarm.NewSwarmCommand(dockerCli),
    65  
    66  		// legacy commands may be hidden
    67  		hide(container.NewAttachCommand(dockerCli)),
    68  		hide(container.NewCommitCommand(dockerCli)),
    69  		hide(container.NewCopyCommand(dockerCli)),
    70  		hide(container.NewCreateCommand(dockerCli)),
    71  		hide(container.NewDiffCommand(dockerCli)),
    72  		hide(container.NewExportCommand(dockerCli)),
    73  		hide(container.NewKillCommand(dockerCli)),
    74  		hide(container.NewLogsCommand(dockerCli)),
    75  		hide(container.NewPauseCommand(dockerCli)),
    76  		hide(container.NewPortCommand(dockerCli)),
    77  		hide(container.NewRenameCommand(dockerCli)),
    78  		hide(container.NewRestartCommand(dockerCli)),
    79  		hide(container.NewRmCommand(dockerCli)),
    80  		hide(container.NewStartCommand(dockerCli)),
    81  		hide(container.NewStatsCommand(dockerCli)),
    82  		hide(container.NewStopCommand(dockerCli)),
    83  		hide(container.NewTopCommand(dockerCli)),
    84  		hide(container.NewUnpauseCommand(dockerCli)),
    85  		hide(container.NewUpdateCommand(dockerCli)),
    86  		hide(container.NewWaitCommand(dockerCli)),
    87  		hide(image.NewHistoryCommand(dockerCli)),
    88  		hide(image.NewImportCommand(dockerCli)),
    89  		hide(image.NewLoadCommand(dockerCli)),
    90  		hide(image.NewRemoveCommand(dockerCli)),
    91  		hide(image.NewSaveCommand(dockerCli)),
    92  		hide(image.NewTagCommand(dockerCli)),
    93  		hide(system.NewEventsCommand(dockerCli)),
    94  		hide(system.NewInspectCommand(dockerCli)),
    95  	)
    96  }
    97  
    98  func hide(cmd *cobra.Command) *cobra.Command {
    99  	// If the environment variable with name "DOCKER_HIDE_LEGACY_COMMANDS" is not empty,
   100  	// these legacy commands (such as `docker ps`, `docker exec`, etc)
   101  	// will not be shown in output console.
   102  	if os.Getenv("DOCKER_HIDE_LEGACY_COMMANDS") == "" {
   103  		return cmd
   104  	}
   105  	cmdCopy := *cmd
   106  	cmdCopy.Hidden = true
   107  	cmdCopy.Aliases = []string{}
   108  	return &cmdCopy
   109  }