opts.go 846 B

1234567891011121314151617181920212223242526
  1. package commands
  2. import (
  3. "github.com/compose-spec/compose-go/cli"
  4. "github.com/compose-spec/compose-go/types"
  5. "github.com/spf13/cobra"
  6. "github.com/spf13/pflag"
  7. )
  8. func AddFlags(o *cli.ProjectOptions, flags *pflag.FlagSet) {
  9. flags.StringArrayVarP(&o.ConfigPaths, "file", "f", nil, "Specify an alternate compose file")
  10. flags.StringVarP(&o.Name, "project-name", "n", "", "Specify an alternate project name (default: directory name)")
  11. }
  12. type ProjectFunc func(project *types.Project, args []string) error
  13. // WithProject wrap a ProjectFunc into a cobra command
  14. func WithProject(options *cli.ProjectOptions, f ProjectFunc) func(cmd *cobra.Command, args []string) error {
  15. return func(cmd *cobra.Command, args []string) error {
  16. project, err := cli.ProjectFromOptions(options)
  17. if err != nil {
  18. return err
  19. }
  20. return f(project, args)
  21. }
  22. }