config.go 937 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // +build experimental
  2. package stack
  3. import (
  4. "github.com/docker/docker/api/client"
  5. "github.com/docker/docker/api/client/bundlefile"
  6. "github.com/docker/docker/cli"
  7. "github.com/spf13/cobra"
  8. )
  9. type configOptions struct {
  10. bundlefile string
  11. namespace string
  12. }
  13. func newConfigCommand(dockerCli *client.DockerCli) *cobra.Command {
  14. var opts configOptions
  15. cmd := &cobra.Command{
  16. Use: "config [OPTIONS] STACK",
  17. Short: "Print the stack configuration",
  18. Args: cli.ExactArgs(1),
  19. RunE: func(cmd *cobra.Command, args []string) error {
  20. opts.namespace = args[0]
  21. return runConfig(dockerCli, opts)
  22. },
  23. }
  24. flags := cmd.Flags()
  25. addBundlefileFlag(&opts.bundlefile, flags)
  26. return cmd
  27. }
  28. func runConfig(dockerCli *client.DockerCli, opts configOptions) error {
  29. bundle, err := loadBundlefile(dockerCli.Err(), opts.namespace, opts.bundlefile)
  30. if err != nil {
  31. return err
  32. }
  33. return bundlefile.Print(dockerCli.Out(), bundle)
  34. }