diff --git a/cmd/compatibility/convert.go b/cmd/compatibility/convert.go index 27a57063b..d6d883405 100644 --- a/cmd/compatibility/convert.go +++ b/cmd/compatibility/convert.go @@ -50,7 +50,7 @@ func Convert(args []string) []string { l := len(args) for i := 0; i < l; i++ { arg := args[i] - if arg[0] != '-' { + if len(arg) > 0 && arg[0] != '-' { // not a top-level flag anymore, keep the rest of the command unmodified if arg == compose.PluginName { i++ diff --git a/cmd/compatibility/convert_test.go b/cmd/compatibility/convert_test.go index 68fc66de7..e53cbb157 100644 --- a/cmd/compatibility/convert_test.go +++ b/cmd/compatibility/convert_test.go @@ -68,6 +68,11 @@ func Test_convert(t *testing.T) { args: []string{"--log-level", "INFO", "up"}, want: []string{"--log-level", "INFO", "compose", "up"}, }, + { + name: "empty string argument", + args: []string{"--project-directory", "", "ps"}, + want: []string{"compose", "--project-directory", "", "ps"}, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {