diff --git a/.golangci.yml b/.golangci.yml index 04cda8c..4e03a03 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -19,12 +19,15 @@ linters: - errcheck - gosimple - govet + - ineffassign - staticcheck - typecheck - unused + - errchkjson - errname - errorlint - execinquery + - gocritic - goerr113 - gofumpt - gosec @@ -38,7 +41,10 @@ linters: linters-settings: gosec: excludes: + - G101 + - G112 - G402 + - G404 - G501 - G505 exclude-generated: true @@ -63,3 +69,7 @@ linters-settings: - unusedresult staticcheck: checks: ["all", "-SA1019"] + gocritic: + enabled-tags: + - style + - performance diff --git a/Makefile b/Makefile index 91139c0..75eb36b 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,32 @@ -.PHONY: all test-color lint +.PHONY: all test test-color coverage coverage-cli coverate-html lint format build -all: test-color lint +all: test-color lint format go mod tidy +test: + go test -race -failfast ./... + test-color: go install github.com/haunt98/go-test-color@latest go-test-color -race -failfast ./... +coverage: + go test -coverprofile=coverage.out ./... + +coverage-cli: coverage + go tool cover -func=coverage.out + +coverage-html: coverage + go tool cover -html=coverage.out + lint: golangci-lint run ./... + +format: + go install github.com/haunt98/gofimports/cmd/gofimports@latest + go install mvdan.cc/gofumpt@latest + gofimports -w -company github.com/make-go-great . + gofumpt -w -extra . + +build: + go build ./cmd/populatedb diff --git a/internal/cli/action_generate.go b/internal/cli/action_generate.go index 7cde645..10dfe8a 100644 --- a/internal/cli/action_generate.go +++ b/internal/cli/action_generate.go @@ -3,8 +3,9 @@ package cli import ( "fmt" - "github.com/haunt98/populatedb-go/internal/populatedb" "github.com/urfave/cli/v2" + + "github.com/haunt98/populatedb-go/internal/populatedb" ) func (a *action) RunGenerate(c *cli.Context) error { diff --git a/internal/cli/app.go b/internal/cli/app.go index 60d31b8..131babe 100644 --- a/internal/cli/app.go +++ b/internal/cli/app.go @@ -3,8 +3,9 @@ package cli import ( "os" - "github.com/make-go-great/color-go" "github.com/urfave/cli/v2" + + "github.com/make-go-great/color-go" ) const ( diff --git a/internal/populatedb/populatedb.go b/internal/populatedb/populatedb.go index e292359..71dc376 100644 --- a/internal/populatedb/populatedb.go +++ b/internal/populatedb/populatedb.go @@ -215,15 +215,15 @@ func (p *populator) InsertBatch(ctx context.Context, tableName string, numberRec } // Return columnNames, questionMarks, argFns -func (p *populator) prepareInsert(tableName string) ([]string, []string, []func() any, error) { +func (p *populator) prepareInsert(tableName string) (columnNames, questionMarks []string, argFns []func() any, err error) { table, ok := p.tables[tableName] if !ok { return nil, nil, nil, fmt.Errorf("table [%s] not exist: %w", tableName, ErrTableNotExist) } - columnNames := make([]string, 0, len(table.Columns)) - questionMarks := make([]string, 0, len(table.Columns)) - argFns := make([]func() any, 0, len(table.Columns)) + columnNames = make([]string, 0, len(table.Columns)) + questionMarks = make([]string, 0, len(table.Columns)) + argFns = make([]func() any, 0, len(table.Columns)) for _, column := range table.Columns { dt, err := ParseDatabaseType(column) if err != nil {