diff options
Diffstat (limited to 'modules/util/compare.go')
-rw-r--r-- | modules/util/compare.go | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/modules/util/compare.go b/modules/util/compare.go index d4f77aed3b..cd9ba0d91c 100644 --- a/modules/util/compare.go +++ b/modules/util/compare.go @@ -4,7 +4,10 @@ package util -import "sort" +import ( + "sort" + "strings" +) // Int64Slice attaches the methods of Interface to []int64, sorting in increasing order. type Int64Slice []int64 @@ -36,10 +39,22 @@ func ExistsInSlice(target string, slice []string) bool { } // IsStringInSlice sequential searches if string exists in slice. -func IsStringInSlice(target string, slice []string) bool { +func IsStringInSlice(target string, slice []string, insensitive ...bool) bool { + caseInsensitive := false + if len(insensitive) != 0 && insensitive[0] { + caseInsensitive = true + target = strings.ToLower(target) + } + for i := 0; i < len(slice); i++ { - if slice[i] == target { - return true + if caseInsensitive { + if strings.ToLower(slice[i]) == target { + return true + } + } else { + if slice[i] == target { + return true + } } } return false |