Bladeren bron

fix support for --context=foo

Signed-off-by: Nicolas De Loof <[email protected]>
Nicolas De Loof 1 jaar geleden
bovenliggende
commit
9970a84ae6
2 gewijzigde bestanden met toevoegingen van 23 en 7 verwijderingen
  1. 18 7
      cmd/compatibility/convert.go
  2. 5 0
      cmd/compatibility/convert_test.go

+ 18 - 7
cmd/compatibility/convert.go

@@ -19,6 +19,7 @@ package compatibility
 import (
 	"fmt"
 	"os"
+	"strings"
 
 	"github.com/docker/compose/v2/cmd/compose"
 )
@@ -55,6 +56,7 @@ func Convert(args []string) []string {
 	var rootFlags []string
 	command := []string{compose.PluginName}
 	l := len(args)
+ARGS:
 	for i := 0; i < l; i++ {
 		arg := args[i]
 		if contains(getCompletionCommands(), arg) {
@@ -81,14 +83,23 @@ func Convert(args []string) []string {
 			rootFlags = append(rootFlags, arg)
 			continue
 		}
-		if contains(getStringFlags(), arg) {
-			i++
-			if i >= l {
-				fmt.Fprintf(os.Stderr, "flag needs an argument: '%s'\n", arg)
-				os.Exit(1)
+		for _, flag := range getStringFlags() {
+			if arg == flag {
+				i++
+				if i >= l {
+					fmt.Fprintf(os.Stderr, "flag needs an argument: '%s'\n", arg)
+					os.Exit(1)
+				}
+				rootFlags = append(rootFlags, arg, args[i])
+				continue ARGS
+			}
+			if strings.HasPrefix(arg, flag) {
+				_, val, found := strings.Cut(arg, "=")
+				if found {
+					rootFlags = append(rootFlags, flag, val)
+					continue ARGS
+				}
 			}
-			rootFlags = append(rootFlags, arg, args[i])
-			continue
 		}
 		command = append(command, arg)
 	}

+ 5 - 0
cmd/compatibility/convert_test.go

@@ -38,6 +38,11 @@ func Test_convert(t *testing.T) {
 			args: []string{"--context", "foo", "-f", "compose.yaml", "up"},
 			want: []string{"--context", "foo", "compose", "-f", "compose.yaml", "up"},
 		},
+		{
+			name: "with context arg",
+			args: []string{"--context=foo", "-f", "compose.yaml", "up"},
+			want: []string{"--context", "foo", "compose", "-f", "compose.yaml", "up"},
+		},
 		{
 			name: "with host",
 			args: []string{"--host", "tcp://1.2.3.4", "up"},