Skip to content

Commit a39a042

Browse files
committed
cobrautil: decouple from bake/build dependency chain
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
1 parent ff5a387 commit a39a042

28 files changed

Lines changed: 96 additions & 114 deletions

commands/bake.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"github.com/docker/buildx/localstate"
2626
"github.com/docker/buildx/util/buildflags"
2727
"github.com/docker/buildx/util/cobrautil"
28-
"github.com/docker/buildx/util/cobrautil/completion"
2928
"github.com/docker/buildx/util/confutil"
3029
"github.com/docker/buildx/util/desktop"
3130
"github.com/docker/buildx/util/dockerutil"
@@ -510,7 +509,7 @@ func bakeCmd(dockerCli command.Cli, rootOpts *rootOptions) *cobra.Command {
510509
// Other common flags (noCache, pull and progress) are processed in runBake function.
511510
return runBake(cmd.Context(), dockerCli, args, options, cFlags, filesFromEnv)
512511
},
513-
ValidArgsFunction: completion.BakeTargets(options.files),
512+
ValidArgsFunction: bakeTargetsCompletion(options.files),
514513
DisableFlagsInUseLine: true,
515514
}
516515

@@ -545,6 +544,29 @@ func bakeCmd(dockerCli command.Cli, rootOpts *rootOptions) *cobra.Command {
545544
return cmd
546545
}
547546

547+
func bakeTargetsCompletion(files []string) cobrautil.ValidArgsFn {
548+
return func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
549+
f, err := bake.ReadLocalFiles(files, nil, nil)
550+
if err != nil {
551+
return nil, cobra.ShellCompDirectiveError
552+
}
553+
tgts, err := bake.ListTargets(f)
554+
if err != nil {
555+
return nil, cobra.ShellCompDirectiveError
556+
}
557+
var filtered []string
558+
if toComplete == "" {
559+
return tgts, cobra.ShellCompDirectiveNoFileComp
560+
}
561+
for _, tgt := range tgts {
562+
if strings.HasPrefix(tgt, toComplete) {
563+
filtered = append(filtered, tgt)
564+
}
565+
}
566+
return filtered, cobra.ShellCompDirectiveNoFileComp
567+
}
568+
}
569+
548570
func bakeEnvFiles(lookup func(string string) (string, bool)) ([]string, error) {
549571
sep, _ := lookup(bakeEnvFileSeparator)
550572
if sep == "" {

commands/create.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"github.com/docker/buildx/driver"
1111
"github.com/docker/buildx/store/storeutil"
1212
"github.com/docker/buildx/util/cobrautil"
13-
"github.com/docker/buildx/util/cobrautil/completion"
1413
"github.com/docker/cli/cli"
1514
"github.com/docker/cli/cli/command"
1615
"github.com/spf13/cobra"
@@ -101,7 +100,7 @@ func createCmd(dockerCli command.Cli) *cobra.Command {
101100
RunE: func(cmd *cobra.Command, args []string) error {
102101
return runCreate(cmd.Context(), dockerCli, options, args)
103102
},
104-
ValidArgsFunction: completion.Disable,
103+
ValidArgsFunction: cobrautil.DisableCompletion,
105104
DisableFlagsInUseLine: true,
106105
}
107106

commands/diskusage.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"time"
99

1010
"github.com/docker/buildx/builder"
11-
"github.com/docker/buildx/util/cobrautil/completion"
11+
"github.com/docker/buildx/util/cobrautil"
1212
"github.com/docker/cli/cli"
1313
"github.com/docker/cli/cli/command"
1414
"github.com/docker/cli/cli/command/formatter"
@@ -196,7 +196,7 @@ func duCmd(dockerCli command.Cli, rootOpts *rootOptions) *cobra.Command {
196196
options.builder = rootOpts.builder
197197
return runDiskUsage(cmd.Context(), dockerCli, options)
198198
},
199-
ValidArgsFunction: completion.Disable,
199+
ValidArgsFunction: cobrautil.DisableCompletion,
200200
DisableFlagsInUseLine: true,
201201
}
202202

commands/history/export.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/containerd/platforms"
1111
"github.com/docker/buildx/builder"
1212
"github.com/docker/buildx/localstate"
13-
"github.com/docker/buildx/util/cobrautil/completion"
13+
"github.com/docker/buildx/util/cobrautil"
1414
"github.com/docker/buildx/util/confutil"
1515
"github.com/docker/buildx/util/desktop/bundle"
1616
"github.com/docker/cli/cli/command"
@@ -160,7 +160,7 @@ func exportCmd(dockerCli command.Cli, rootOpts RootOptions) *cobra.Command {
160160
options.builder = *rootOpts.Builder
161161
return runExport(cmd.Context(), dockerCli, options)
162162
},
163-
ValidArgsFunction: completion.Disable,
163+
ValidArgsFunction: cobrautil.DisableCompletion,
164164
DisableFlagsInUseLine: true,
165165
}
166166

commands/history/import.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"strings"
1212

1313
remoteutil "github.com/docker/buildx/driver/remote/util"
14-
"github.com/docker/buildx/util/cobrautil/completion"
14+
"github.com/docker/buildx/util/cobrautil"
1515
"github.com/docker/buildx/util/desktop"
1616
"github.com/docker/cli/cli/command"
1717
"github.com/pkg/browser"
@@ -125,7 +125,7 @@ func importCmd(dockerCli command.Cli, _ RootOptions) *cobra.Command {
125125
RunE: func(cmd *cobra.Command, args []string) error {
126126
return runImport(cmd.Context(), dockerCli, options)
127127
},
128-
ValidArgsFunction: completion.Disable,
128+
ValidArgsFunction: cobrautil.DisableCompletion,
129129
DisableFlagsInUseLine: true,
130130
}
131131

commands/history/inspect.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
"github.com/containerd/containerd/v2/core/images"
2222
"github.com/containerd/platforms"
2323
"github.com/docker/buildx/localstate"
24-
"github.com/docker/buildx/util/cobrautil/completion"
24+
"github.com/docker/buildx/util/cobrautil"
2525
"github.com/docker/buildx/util/confutil"
2626
"github.com/docker/buildx/util/desktop"
2727
"github.com/docker/cli/cli/command"
@@ -656,7 +656,7 @@ func inspectCmd(dockerCli command.Cli, rootOpts RootOptions) *cobra.Command {
656656
options.builder = *rootOpts.Builder
657657
return runInspect(cmd.Context(), dockerCli, options)
658658
},
659-
ValidArgsFunction: completion.Disable,
659+
ValidArgsFunction: cobrautil.DisableCompletion,
660660
DisableFlagsInUseLine: true,
661661
}
662662

commands/history/inspect_attachment.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66

77
"github.com/containerd/containerd/v2/core/content/proxy"
88
"github.com/containerd/platforms"
9-
"github.com/docker/buildx/util/cobrautil/completion"
9+
"github.com/docker/buildx/util/cobrautil"
1010
"github.com/docker/cli/cli/command"
1111
intoto "github.com/in-toto/in-toto-golang/in_toto"
1212
slsa02 "github.com/in-toto/in-toto-golang/in_toto/slsa_provenance/v0.2"
@@ -129,7 +129,7 @@ func attachmentCmd(dockerCli command.Cli, rootOpts RootOptions) *cobra.Command {
129129
options.builder = *rootOpts.Builder
130130
return runAttachment(cmd.Context(), dockerCli, options)
131131
},
132-
ValidArgsFunction: completion.Disable,
132+
ValidArgsFunction: cobrautil.DisableCompletion,
133133
DisableFlagsInUseLine: true,
134134
}
135135

commands/history/logs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"io"
66
"os"
77

8-
"github.com/docker/buildx/util/cobrautil/completion"
8+
"github.com/docker/buildx/util/cobrautil"
99
"github.com/docker/buildx/util/progress"
1010
"github.com/docker/cli/cli/command"
1111
controlapi "github.com/moby/buildkit/api/services/control"
@@ -96,7 +96,7 @@ func logsCmd(dockerCli command.Cli, rootOpts RootOptions) *cobra.Command {
9696
options.builder = *rootOpts.Builder
9797
return runLogs(cmd.Context(), dockerCli, options)
9898
},
99-
ValidArgsFunction: completion.Disable,
99+
ValidArgsFunction: cobrautil.DisableCompletion,
100100
DisableFlagsInUseLine: true,
101101
}
102102

commands/history/ls.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111

1212
"github.com/containerd/console"
1313
"github.com/docker/buildx/localstate"
14-
"github.com/docker/buildx/util/cobrautil/completion"
14+
"github.com/docker/buildx/util/cobrautil"
1515
"github.com/docker/buildx/util/confutil"
1616
"github.com/docker/buildx/util/desktop"
1717
"github.com/docker/buildx/util/gitutil"
@@ -103,7 +103,7 @@ func lsCmd(dockerCli command.Cli, rootOpts RootOptions) *cobra.Command {
103103
options.builder = *rootOpts.Builder
104104
return runLs(cmd.Context(), dockerCli, options)
105105
},
106-
ValidArgsFunction: completion.Disable,
106+
ValidArgsFunction: cobrautil.DisableCompletion,
107107
DisableFlagsInUseLine: true,
108108
}
109109

commands/history/open.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"context"
55
"fmt"
66

7-
"github.com/docker/buildx/util/cobrautil/completion"
7+
"github.com/docker/buildx/util/cobrautil"
88
"github.com/docker/buildx/util/desktop"
99
"github.com/docker/cli/cli/command"
1010
"github.com/pkg/browser"
@@ -55,7 +55,7 @@ func openCmd(dockerCli command.Cli, rootOpts RootOptions) *cobra.Command {
5555
options.builder = *rootOpts.Builder
5656
return runOpen(cmd.Context(), dockerCli, options)
5757
},
58-
ValidArgsFunction: completion.Disable,
58+
ValidArgsFunction: cobrautil.DisableCompletion,
5959
DisableFlagsInUseLine: true,
6060
}
6161

0 commit comments

Comments
 (0)