Skip to content

Commit

Permalink
fix: simplify arg parsing
Browse files Browse the repository at this point in the history
strings.Cut was introduced in go 1.18

Signed-off-by: Mario Valderrama <[email protected]>
  • Loading branch information
avorima committed May 8, 2024
1 parent 6ffd6bb commit f330eb0
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 7 deletions.
8 changes: 1 addition & 7 deletions internal/utilities/args.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,7 @@ func ArgsFromSliceToMap(args []string) (m map[string]string) {
m = make(map[string]string)

for _, arg := range args {
parts := strings.SplitN(arg, "=", 2)

flag, value := parts[0], ""

if len(parts) > 1 {
value = parts[1]
}
flag, value, _ := strings.Cut(arg, "=")

m[flag] = value
}
Expand Down
30 changes: 30 additions & 0 deletions internal/utilities/args_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// Copyright 2022 Clastix Labs
// SPDX-License-Identifier: Apache-2.0

package utilities

import (
"maps"
"testing"
)

func TestArgsFromSliceToMap(t *testing.T) {
tests := map[string]map[string]string{
"--a": {"--a": ""},
"--a=": {"--a": ""},
"--a=b": {"--a": "b"},
"--a=b=c": {"--a": "b=c"},
}

got := ArgsFromSliceToMap([]string{})
if len(got) != 0 {
t.Errorf("expected empty input to result in empty map, but got %+v", got)
}

for arg, expect := range tests {
got := ArgsFromSliceToMap([]string{arg})
if !maps.Equal(expect, got) {
t.Errorf("expected input %q to result in %+v, but got %+v", arg, expect, got)
}
}
}

0 comments on commit f330eb0

Please sign in to comment.