From 250cd44d7075c30b1530c7253326b4a91397d618 Mon Sep 17 00:00:00 2001 From: Talon Bowler Date: Thu, 30 May 2024 13:41:04 -0700 Subject: [PATCH] Adds a --call flag as an alias to the --print flag and hides the later. Signed-off-by: Talon Bowler --- commands/build.go | 11 ++++++----- docs/reference/buildx_build.md | 2 +- docs/reference/buildx_debug_build.md | 2 +- util/buildflags/printfunc.go | 8 ++++++++ 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/commands/build.go b/commands/build.go index c228a40e..f42186d2 100644 --- a/commands/build.go +++ b/commands/build.go @@ -597,11 +597,6 @@ func buildCmd(dockerCli command.Cli, rootOpts *rootOptions, debugConfig *debug.D flags.StringArrayVar(&options.platforms, "platform", platformsDefault, "Set target platform for build") - if confutil.IsExperimental() { - flags.StringVar(&options.printFunc, "print", "", "Print result of information request (e.g., outline, targets)") - cobrautil.MarkFlagsExperimental(flags, "print") - } - flags.BoolVar(&options.exportPush, "push", false, `Shorthand for "--output=type=registry"`) flags.BoolVarP(&options.quiet, "quiet", "q", false, "Suppress the build output and print image ID on success") @@ -633,12 +628,18 @@ func buildCmd(dockerCli command.Cli, rootOpts *rootOptions, debugConfig *debug.D cobrautil.MarkFlagsExperimental(flags, "root", "detach", "server-config") } + flags.StringVar(&options.printFunc, "call", "", `Set method for evaluating build ("check", "outline", "targets")`) + // hidden flags var ignore string var ignoreSlice []string var ignoreBool bool var ignoreInt int64 + flags.StringVar(&options.printFunc, "print", "", "Print result of information request (e.g., outline, targets)") + cobrautil.MarkFlagsExperimental(flags, "print") + flags.MarkHidden("print") + flags.BoolVar(&ignoreBool, "compress", false, "Compress the build context using gzip") flags.MarkHidden("compress") diff --git a/docs/reference/buildx_build.md b/docs/reference/buildx_build.md index cf4afdc3..d3e3c253 100644 --- a/docs/reference/buildx_build.md +++ b/docs/reference/buildx_build.md @@ -24,6 +24,7 @@ Start a build | [`--builder`](#builder) | `string` | | Override the configured builder instance | | [`--cache-from`](#cache-from) | `stringArray` | | External cache sources (e.g., `user/app:cache`, `type=local,src=path/to/dir`) | | [`--cache-to`](#cache-to) | `stringArray` | | Cache export destinations (e.g., `user/app:cache`, `type=local,dest=path/to/dir`) | +| `--call` | `string` | | Set method for evaluating build (`check`, `outline`, `targets`) | | [`--cgroup-parent`](https://docs.docker.com/reference/cli/docker/image/build/#cgroup-parent) | `string` | | Set the parent cgroup for the `RUN` instructions during build | | `--detach` | | | Detach buildx server (supported only on linux) (EXPERIMENTAL) | | [`-f`](https://docs.docker.com/reference/cli/docker/image/build/#file), [`--file`](https://docs.docker.com/reference/cli/docker/image/build/#file) | `string` | | Name of the Dockerfile (default: `PATH/Dockerfile`) | @@ -36,7 +37,6 @@ Start a build | [`--no-cache-filter`](#no-cache-filter) | `stringArray` | | Do not cache specified stages | | [`-o`](#output), [`--output`](#output) | `stringArray` | | Output destination (format: `type=local,dest=path`) | | [`--platform`](#platform) | `stringArray` | | Set target platform for build | -| `--print` | `string` | | Print result of information request (e.g., outline, targets) (EXPERIMENTAL) | | [`--progress`](#progress) | `string` | `auto` | Set type of progress output (`auto`, `plain`, `tty`). Use plain to show container output | | [`--provenance`](#provenance) | `string` | | Shorthand for `--attest=type=provenance` | | `--pull` | | | Always attempt to pull all referenced images | diff --git a/docs/reference/buildx_debug_build.md b/docs/reference/buildx_debug_build.md index 5a62e3bc..6a904a4b 100644 --- a/docs/reference/buildx_debug_build.md +++ b/docs/reference/buildx_debug_build.md @@ -20,6 +20,7 @@ Start a build | `--builder` | `string` | | Override the configured builder instance | | `--cache-from` | `stringArray` | | External cache sources (e.g., `user/app:cache`, `type=local,src=path/to/dir`) | | `--cache-to` | `stringArray` | | Cache export destinations (e.g., `user/app:cache`, `type=local,dest=path/to/dir`) | +| `--call` | `string` | | Set method for evaluating build (`check`, `outline`, `targets`) | | [`--cgroup-parent`](https://docs.docker.com/reference/cli/docker/image/build/#cgroup-parent) | `string` | | Set the parent cgroup for the `RUN` instructions during build | | `--detach` | | | Detach buildx server (supported only on linux) (EXPERIMENTAL) | | [`-f`](https://docs.docker.com/reference/cli/docker/image/build/#file), [`--file`](https://docs.docker.com/reference/cli/docker/image/build/#file) | `string` | | Name of the Dockerfile (default: `PATH/Dockerfile`) | @@ -32,7 +33,6 @@ Start a build | `--no-cache-filter` | `stringArray` | | Do not cache specified stages | | `-o`, `--output` | `stringArray` | | Output destination (format: `type=local,dest=path`) | | `--platform` | `stringArray` | | Set target platform for build | -| `--print` | `string` | | Print result of information request (e.g., outline, targets) (EXPERIMENTAL) | | `--progress` | `string` | `auto` | Set type of progress output (`auto`, `plain`, `tty`). Use plain to show container output | | `--provenance` | `string` | | Shorthand for `--attest=type=provenance` | | `--pull` | | | Always attempt to pull all referenced images | diff --git a/util/buildflags/printfunc.go b/util/buildflags/printfunc.go index 63807e48..070971c3 100644 --- a/util/buildflags/printfunc.go +++ b/util/buildflags/printfunc.go @@ -13,6 +13,14 @@ func ParsePrintFunc(str string) (*controllerapi.PrintFunc, error) { if str == "" { return nil, nil } + + // "check" has been added as an alias for "lint", + // in order to maintain backwards compatibility + // we need to convert it. + if str == "check" { + str = "lint" + } + csvReader := csv.NewReader(strings.NewReader(str)) fields, err := csvReader.Read() if err != nil {