Skip to content

Commit 029278c

Browse files
Move sliceContains to new package pkg/sliceutil (#1333)
* Move sliceContains to new package pkg/sliceutil * Test sliceutil
1 parent 13c2a34 commit 029278c

File tree

3 files changed

+36
-10
lines changed

3 files changed

+36
-10
lines changed

pkg/config/reader.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212

1313
"github.com/golangci/golangci-lint/pkg/fsutils"
1414
"github.com/golangci/golangci-lint/pkg/logutils"
15+
"github.com/golangci/golangci-lint/pkg/sliceutil"
1516
)
1617

1718
type FileReader struct {
@@ -183,7 +184,7 @@ func (r *FileReader) setupConfigFileSearch() {
183184
// find home directory for global config
184185
if home, err := homedir.Dir(); err != nil {
185186
r.log.Warnf("Can't get user's home directory: %s", err.Error())
186-
} else if !sliceContains(configSearchPaths, home) {
187+
} else if !sliceutil.Contains(configSearchPaths, home) {
187188
configSearchPaths = append(configSearchPaths, home)
188189
}
189190

@@ -194,15 +195,6 @@ func (r *FileReader) setupConfigFileSearch() {
194195
}
195196
}
196197

197-
func sliceContains(slice []string, value string) bool {
198-
for _, v := range slice {
199-
if v == value {
200-
return true
201-
}
202-
}
203-
return false
204-
}
205-
206198
var errConfigDisabled = errors.New("config is disabled by --no-config")
207199

208200
func (r *FileReader) parseConfigOption() (string, error) {

pkg/sliceutil/sliceutil.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package sliceutil
2+
3+
// IndexOf get the index of the given value in the given string slice,
4+
// or -1 if not found.
5+
func IndexOf(slice []string, value string) int {
6+
for i, v := range slice {
7+
if v == value {
8+
return i
9+
}
10+
}
11+
return -1
12+
}
13+
14+
// Contains check if a string slice contains a value.
15+
func Contains(slice []string, value string) bool {
16+
return IndexOf(slice, value) != -1
17+
}

pkg/sliceutil/sliceutil_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package sliceutil
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/assert"
7+
)
8+
9+
func TestContains(t *testing.T) {
10+
assert.True(t, Contains([]string{"val1", "val2", "val3"}, "val2"))
11+
assert.False(t, Contains([]string{"val1", "val2", "val3"}, "val4"))
12+
}
13+
14+
func TestIndexOf(t *testing.T) {
15+
assert.Equal(t, 1, IndexOf([]string{"val1", "val2", "val3"}, "val2"))
16+
assert.Equal(t, -1, IndexOf([]string{"val1", "val2", "val3"}, "val4"))
17+
}

0 commit comments

Comments
 (0)