github.com/cspotcode/docker-cli@v20.10.0-rc1.0.20201201121459-3faad7acc5b8+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  		// checkpoint
    32  		checkpoint.NewCheckpointCommand(dockerCli),
    33  
    34  		// config
    35  		config.NewConfigCommand(dockerCli),
    36  
    37  		// container
    38  		container.NewContainerCommand(dockerCli),
    39  		container.NewRunCommand(dockerCli),
    40  
    41  		// image
    42  		image.NewImageCommand(dockerCli),
    43  		image.NewBuildCommand(dockerCli),
    44  
    45  		// builder
    46  		builder.NewBuilderCommand(dockerCli),
    47  
    48  		// manifest
    49  		manifest.NewManifestCommand(dockerCli),
    50  
    51  		// network
    52  		network.NewNetworkCommand(dockerCli),
    53  
    54  		// node
    55  		node.NewNodeCommand(dockerCli),
    56  
    57  		// plugin
    58  		plugin.NewPluginCommand(dockerCli),
    59  
    60  		// registry
    61  		registry.NewLoginCommand(dockerCli),
    62  		registry.NewLogoutCommand(dockerCli),
    63  		registry.NewSearchCommand(dockerCli),
    64  
    65  		// secret
    66  		secret.NewSecretCommand(dockerCli),
    67  
    68  		// service
    69  		service.NewServiceCommand(dockerCli),
    70  
    71  		// system
    72  		system.NewSystemCommand(dockerCli),
    73  		system.NewVersionCommand(dockerCli),
    74  
    75  		// stack
    76  		stack.NewStackCommand(dockerCli),
    77  
    78  		// swarm
    79  		swarm.NewSwarmCommand(dockerCli),
    80  
    81  		// trust
    82  		trust.NewTrustCommand(dockerCli),
    83  
    84  		// volume
    85  		volume.NewVolumeCommand(dockerCli),
    86  
    87  		// context
    88  		context.NewContextCommand(dockerCli),
    89  
    90  		// legacy commands may be hidden
    91  		hide(system.NewEventsCommand(dockerCli)),
    92  		hide(system.NewInfoCommand(dockerCli)),
    93  		hide(system.NewInspectCommand(dockerCli)),
    94  		hide(container.NewAttachCommand(dockerCli)),
    95  		hide(container.NewCommitCommand(dockerCli)),
    96  		hide(container.NewCopyCommand(dockerCli)),
    97  		hide(container.NewCreateCommand(dockerCli)),
    98  		hide(container.NewDiffCommand(dockerCli)),
    99  		hide(container.NewExecCommand(dockerCli)),
   100  		hide(container.NewExportCommand(dockerCli)),
   101  		hide(container.NewKillCommand(dockerCli)),
   102  		hide(container.NewLogsCommand(dockerCli)),
   103  		hide(container.NewPauseCommand(dockerCli)),
   104  		hide(container.NewPortCommand(dockerCli)),
   105  		hide(container.NewPsCommand(dockerCli)),
   106  		hide(container.NewRenameCommand(dockerCli)),
   107  		hide(container.NewRestartCommand(dockerCli)),
   108  		hide(container.NewRmCommand(dockerCli)),
   109  		hide(container.NewStartCommand(dockerCli)),
   110  		hide(container.NewStatsCommand(dockerCli)),
   111  		hide(container.NewStopCommand(dockerCli)),
   112  		hide(container.NewTopCommand(dockerCli)),
   113  		hide(container.NewUnpauseCommand(dockerCli)),
   114  		hide(container.NewUpdateCommand(dockerCli)),
   115  		hide(container.NewWaitCommand(dockerCli)),
   116  		hide(image.NewHistoryCommand(dockerCli)),
   117  		hide(image.NewImagesCommand(dockerCli)),
   118  		hide(image.NewImportCommand(dockerCli)),
   119  		hide(image.NewLoadCommand(dockerCli)),
   120  		hide(image.NewPullCommand(dockerCli)),
   121  		hide(image.NewPushCommand(dockerCli)),
   122  		hide(image.NewRemoveCommand(dockerCli)),
   123  		hide(image.NewSaveCommand(dockerCli)),
   124  		hide(image.NewTagCommand(dockerCli)),
   125  	)
   126  }
   127  
   128  func hide(cmd *cobra.Command) *cobra.Command {
   129  	// If the environment variable with name "DOCKER_HIDE_LEGACY_COMMANDS" is not empty,
   130  	// these legacy commands (such as `docker ps`, `docker exec`, etc)
   131  	// will not be shown in output console.
   132  	if os.Getenv("DOCKER_HIDE_LEGACY_COMMANDS") == "" {
   133  		return cmd
   134  	}
   135  	cmdCopy := *cmd
   136  	cmdCopy.Hidden = true
   137  	cmdCopy.Aliases = []string{}
   138  	return &cmdCopy
   139  }