Browse Source

feat: add --models flag to config command

Signed-off-by: MohammadHasan Akbari <[email protected]>
MohammadHasan Akbari 4 months ago
parent
commit
f42226e352

+ 16 - 0
cmd/compose/config.go

@@ -51,6 +51,7 @@ type configOptions struct {
 	services            bool
 	volumes             bool
 	networks            bool
+	models              bool
 	profiles            bool
 	images              bool
 	hash                string
@@ -115,6 +116,9 @@ func configCommand(p *ProjectOptions, dockerCli command.Cli) *cobra.Command {
 			if opts.networks {
 				return runNetworks(ctx, dockerCli, opts)
 			}
+			if opts.models {
+				return runModels(ctx, dockerCli, opts)
+			}
 			if opts.hash != "" {
 				return runHash(ctx, dockerCli, opts)
 			}
@@ -152,6 +156,7 @@ func configCommand(p *ProjectOptions, dockerCli command.Cli) *cobra.Command {
 	flags.BoolVar(&opts.services, "services", false, "Print the service names, one per line.")
 	flags.BoolVar(&opts.volumes, "volumes", false, "Print the volume names, one per line.")
 	flags.BoolVar(&opts.networks, "networks", false, "Print the network names, one per line.")
+	flags.BoolVar(&opts.models, "models", false, "Print the model names, one per line.")
 	flags.BoolVar(&opts.profiles, "profiles", false, "Print the profile names, one per line.")
 	flags.BoolVar(&opts.images, "images", false, "Print the image names, one per line.")
 	flags.StringVar(&opts.hash, "hash", "", "Print the service config hash, one per line.")
@@ -383,6 +388,17 @@ func runNetworks(ctx context.Context, dockerCli command.Cli, opts configOptions)
 	return nil
 }
 
+func runModels(ctx context.Context, dockerCli command.Cli, opts configOptions) error {
+	project, err := opts.ToProject(ctx, dockerCli, nil, cli.WithoutEnvironmentResolution)
+	if err != nil {
+		return err
+	}
+	for n := range project.Models {
+		_, _ = fmt.Fprintln(dockerCli.Out(), n)
+	}
+	return nil
+}
+
 func runHash(ctx context.Context, dockerCli command.Cli, opts configOptions) error {
 	var services []string
 	if opts.hash != "*" {

+ 1 - 0
docs/reference/compose_config.md

@@ -15,6 +15,7 @@ the canonical format.
 | `--hash`                  | `string` |         | Print the service config hash, one per line.                                |
 | `--images`                | `bool`   |         | Print the image names, one per line.                                        |
 | `--lock-image-digests`    | `bool`   |         | Produces an override file with image digests                                |
+| `--models`                | `bool`   |         | Print the model names, one per line.                                        |
 | `--networks`              | `bool`   |         | Print the network names, one per line.                                      |
 | `--no-consistency`        | `bool`   |         | Don't check model consistency - warning: may produce invalid Compose output |
 | `--no-env-resolution`     | `bool`   |         | Don't resolve service env files                                             |

+ 10 - 0
docs/reference/docker_compose_config.yaml

@@ -56,6 +56,16 @@ options:
       experimentalcli: false
       kubernetes: false
       swarm: false
+    - option: models
+      value_type: bool
+      default_value: "false"
+      description: Print the model names, one per line.
+      deprecated: false
+      hidden: false
+      experimental: false
+      experimentalcli: false
+      kubernetes: false
+      swarm: false
     - option: networks
       value_type: bool
       default_value: "false"