main.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/docker/cli/cli-plugins/manager"
  5. "github.com/docker/cli/cli-plugins/plugin"
  6. "github.com/docker/cli/cli/command"
  7. commands "github.com/docker/ecs-plugin/cmd/commands"
  8. "github.com/spf13/cobra"
  9. )
  10. const version = "0.0.1"
  11. func main() {
  12. plugin.Run(func(dockerCli command.Cli) *cobra.Command {
  13. cmd := NewRootCmd("ecs", dockerCli)
  14. return cmd
  15. }, manager.Metadata{
  16. SchemaVersion: "0.1.0",
  17. Vendor: "Docker Inc.",
  18. Version: version,
  19. Experimental: true,
  20. })
  21. }
  22. // NewRootCmd returns the base root command.
  23. func NewRootCmd(name string, dockerCli command.Cli) *cobra.Command {
  24. cmd := &cobra.Command{
  25. Short: "Docker ECS",
  26. Long: `run multi-container applications on Amazon ECS.`,
  27. Use: name,
  28. Annotations: map[string]string{"experimentalCLI": "true"},
  29. RunE: func(cmd *cobra.Command, args []string) error {
  30. if len(args) != 0 {
  31. return fmt.Errorf("%q is not a docker ecs command\nSee 'docker ecs --help'", args[0])
  32. }
  33. cmd.Help()
  34. return nil
  35. },
  36. }
  37. cmd.AddCommand(
  38. VersionCommand(),
  39. commands.ComposeCommand(dockerCli),
  40. commands.SecretCommand(dockerCli),
  41. commands.SetupCommand(),
  42. )
  43. return cmd
  44. }
  45. func VersionCommand() *cobra.Command {
  46. return &cobra.Command{
  47. Use: "version",
  48. Short: "Show version.",
  49. RunE: func(cmd *cobra.Command, args []string) error {
  50. fmt.Printf("Docker ECS plugin %s\n", version)
  51. return nil
  52. },
  53. }
  54. }