github.com/itscaro/cli@v0.0.0-20190705081621-c9db0fe93829/cli/command/commands/commands.go (about)

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