commands.go 3.7 KB

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