Skip to content

Commit 2de0b33

Browse files
authored
chore: add support for gocritic (#4063)
1 parent 4e4d95b commit 2de0b33

31 files changed

+72
-85
lines changed

.golangci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ linters:
2323
- gocheckcompilerdirectives # Checks that go compiler directive comments (//go:) are valid. [fast: true, auto-fix: false]
2424
- gochecksumtype # Run exhaustiveness checks on Go "sum types" [fast: false, auto-fix: false]
2525
- goconst # Finds repeated strings that could be replaced by a constant [fast: true, auto-fix: false]
26+
- gocritic # Provides diagnostics that check for bugs, performance and style issues. [fast: false, auto-fix: false]
2627
- gocyclo # Computes and checks the cyclomatic complexity of functions [fast: true, auto-fix: false]
2728
- gofmt # Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification [fast: true, auto-fix: true]
2829
- gofumpt # Gofumpt checks whether code was gofumpt-ed. [fast: true, auto-fix: true]

cmd/scw/main.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ func buildVersion() string {
6060
}
6161

6262
func main() {
63+
exitCode := mainNoExit()
64+
os.Exit(exitCode)
65+
}
66+
67+
func mainNoExit() int {
6368
buildInfo := &core.BuildInfo{
6469
Version: version.Must(version.NewSemver(buildVersion())), // panic when version does not respect semantic versioning
6570
BuildDate: BuildDate,
@@ -82,5 +87,5 @@ func main() {
8287
Platform: terminal.NewPlatform(buildInfo.GetUserAgent()),
8388
})
8489

85-
os.Exit(exitCode)
90+
return exitCode
8691
}

internal/args/marshal.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ var marshalFuncs = map[reflect.Type]MarshalFunc{
2727
reflect.TypeOf((*scw.Size)(nil)).Elem(): func(src interface{}) (s string, e error) {
2828
v := src.(*scw.Size)
2929
value := humanize.Bytes(uint64(*v))
30-
value = strings.Replace(value, " ", "", -1)
30+
value = strings.ReplaceAll(value, " ", "")
3131
return value, nil
3232
},
3333
reflect.TypeOf((*time.Time)(nil)).Elem(): func(src interface{}) (string, error) {

internal/core/autocomplete.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,7 @@ func AutoCompleteArgValue(ctx context.Context, cmd *Command, argSpec *ArgSpec, a
370370
possibleValues := []string(nil)
371371

372372
if fieldType, err := args.GetArgType(cmd.ArgsType, argSpec.Name); err == nil {
373-
switch fieldType.Kind() {
374-
case reflect.Bool:
373+
if fieldType.Kind() == reflect.Bool {
375374
possibleValues = []string{"true", "false"}
376375
}
377376
}

internal/core/autocomplete_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ func runAutocompleteTest(ctx context.Context, tc *autoCompleteTestCase) func(*te
8989
t.Helper()
9090
words := tc.Words
9191
if len(words) == 0 {
92-
name := strings.Replace(t.Name(), "TestAutocomplete/", "", -1)
93-
name = strings.Replace(name, "_", " ", -1)
92+
name := strings.ReplaceAll(t.Name(), "TestAutocomplete/", "")
93+
name = strings.ReplaceAll(name, "_", " ")
9494
// Test can contain a sharp if duplicated
9595
// MyTest/scw_-flag_#01
9696
sharpIndex := strings.Index(name, "#")

internal/core/autocomplete_utils.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func AutocompleteProfileName() AutoCompleteArgFunc {
7373
}
7474
}
7575

76-
if strings.HasPrefix(scw.DefaultProfileName, prefix) {
76+
if strings.HasPrefix(scw.DefaultProfileName, prefix) { //nolint:gocritic
7777
res = append(res, scw.DefaultProfileName)
7878
}
7979
return res

internal/core/cobra_utils.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func handleUnmarshalErrors(cmd *Command, unmarshalErr *args.UnmarshalArgError) e
206206

207207
switch e := wrappedErr.(type) {
208208
case *args.CannotUnmarshalError:
209-
switch e.Err.(type) {
209+
switch e.Err.(type) { //nolint:gocritic
210210
case *args.CannotParseBoolError:
211211
return &CliError{
212212
Err: errors.New(""),

internal/core/command.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -386,11 +386,12 @@ func (c *Commands) applyAliases(config *alias.Config) {
386386
for _, command := range c.commands {
387387
aliases := []alias.Alias(nil)
388388
exists := false
389-
if command.Verb != "" {
389+
switch {
390+
case command.Verb != "":
390391
aliases, exists = config.ResolveAliasesByFirstWord(command.Verb)
391-
} else if command.Resource != "" {
392+
case command.Resource != "":
392393
aliases, exists = config.ResolveAliasesByFirstWord(command.Resource)
393-
} else if command.Namespace != "" {
394+
case command.Namespace != "":
394395
aliases, exists = config.ResolveAliasesByFirstWord(command.Namespace)
395396
}
396397
if exists {

internal/core/command_interceptor.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,7 @@ func sdkStdErrorInterceptor(ctx context.Context, args interface{}, runner Comman
103103
}
104104
case *scw.ResourceExpiredError:
105105
var hint string
106-
switch resourceName := sdkError.Resource; resourceName {
107-
case "account_token":
106+
if sdkError.Resource == "account_token" {
108107
hint = "Try to generate a new token here https://console.scaleway.com/iam/api-keys"
109108
}
110109

@@ -124,8 +123,7 @@ func sdkStdTypeInterceptor(ctx context.Context, args interface{}, runner Command
124123
if err != nil {
125124
return res, err
126125
}
127-
switch sdkValue := res.(type) {
128-
case *scw.File:
126+
if sdkValue, ok := res.(*scw.File); ok {
129127
ExtractLogger(ctx).Debug("Intercepting scw.File type, rendering as string")
130128
fileContent, err := io.ReadAll(sdkValue.Content)
131129
if err != nil {

internal/core/reflect_test.go

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,8 @@ func Test_getValuesForFieldByName(t *testing.T) {
9191
values, err := core.GetValuesForFieldByName(reflect.ValueOf(tc.cmdArgs), strings.Split(tc.fieldName, "."))
9292
if err != nil {
9393
assert.Equal(t, tc.expectedError, err.Error())
94-
} else {
95-
if tc.expectedValues != nil && !reflect.DeepEqual(tc.expectedValues[0].Interface(), values[0].Interface()) {
96-
t.Errorf("Expected %v, got %v", tc.expectedValues[0].Interface(), values[0].Interface())
97-
}
94+
} else if tc.expectedValues != nil && !reflect.DeepEqual(tc.expectedValues[0].Interface(), values[0].Interface()) {
95+
t.Errorf("Expected %v, got %v", tc.expectedValues[0].Interface(), values[0].Interface())
9896
}
9997
},
10098
},
@@ -122,10 +120,8 @@ func Test_getValuesForFieldByName(t *testing.T) {
122120
values, err := core.GetValuesForFieldByName(reflect.ValueOf(tc.cmdArgs), strings.Split(tc.fieldName, "."))
123121
if err != nil {
124122
assert.Equal(t, tc.expectedError, err.Error())
125-
} else {
126-
if tc.expectedValues != nil && !reflect.DeepEqual(tc.expectedValues[0].Interface(), values[0].Interface()) {
127-
t.Errorf("Expected %v, got %v", tc.expectedValues[0].Interface(), values[0].Interface())
128-
}
123+
} else if tc.expectedValues != nil && !reflect.DeepEqual(tc.expectedValues[0].Interface(), values[0].Interface()) {
124+
t.Errorf("Expected %v, got %v", tc.expectedValues[0].Interface(), values[0].Interface())
129125
}
130126
},
131127
},
@@ -166,10 +162,8 @@ func Test_getValuesForFieldByName(t *testing.T) {
166162
values, err := core.GetValuesForFieldByName(reflect.ValueOf(tc.cmdArgs), strings.Split(tc.fieldName, "."))
167163
if err != nil {
168164
assert.Equal(t, nil, err.Error())
169-
} else {
170-
if tc.expectedValues != nil && !reflect.DeepEqual(tc.expectedValues[0].Interface(), values[0].Interface()) {
171-
t.Errorf("Expected %v, got %v", tc.expectedValues[0].Interface(), values[0].Interface())
172-
}
165+
} else if tc.expectedValues != nil && !reflect.DeepEqual(tc.expectedValues[0].Interface(), values[0].Interface()) {
166+
t.Errorf("Expected %v, got %v", tc.expectedValues[0].Interface(), values[0].Interface())
173167
}
174168
},
175169
},

0 commit comments

Comments
 (0)