diff --git a/terraform/util.go b/terraform/util.go new file mode 100644 index 000000000..f2654141f --- /dev/null +++ b/terraform/util.go @@ -0,0 +1,12 @@ +package terraform + +// strSliceContains checks if a given string is contained in a slice +// When anybody asks why Go needs generics, here you go. +func strSliceContains(haystack []string, needle string) bool { + for _, s := range haystack { + if s == needle { + return true + } + } + return false +} diff --git a/terraform/util_test.go b/terraform/util_test.go new file mode 100644 index 000000000..3b9818872 --- /dev/null +++ b/terraform/util_test.go @@ -0,0 +1,18 @@ +package terraform + +import "testing" + +func TestStrSliceContains(t *testing.T) { + if strSliceContains(nil, "foo") { + t.Fatalf("Bad") + } + if strSliceContains([]string{}, "foo") { + t.Fatalf("Bad") + } + if strSliceContains([]string{"bar"}, "foo") { + t.Fatalf("Bad") + } + if !strSliceContains([]string{"bar", "foo"}, "foo") { + t.Fatalf("Bad") + } +}