fix: refactor Makefile to fix checkmake maxbodylength violations (#95)

This commit is contained in:
Copilot
2025-11-11 22:32:21 +02:00
committed by GitHub
parent 3a122c3d0c
commit bec064d0b7
7 changed files with 104 additions and 82 deletions

View File

@@ -16,34 +16,7 @@ help:
# Install required tools # Install required tools
install-tools: install-tools:
@echo "Installing golangci-lint..." @./scripts/install-tools.sh
@go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
@echo "Installing gofumpt..."
@go install mvdan.cc/gofumpt@latest
@echo "Installing golines..."
@go install github.com/segmentio/golines@latest
@echo "Installing goimports..."
@go install golang.org/x/tools/cmd/goimports@latest
@echo "Installing staticcheck..."
@go install honnef.co/go/tools/cmd/staticcheck@latest
@echo "Installing gosec..."
@go install github.com/securego/gosec/v2/cmd/gosec@latest
@echo "Installing gocyclo..."
@go install github.com/fzipp/gocyclo/cmd/gocyclo@latest
@echo "Installing revive..."
@go install github.com/mgechev/revive@latest
@echo "Installing checkmake..."
@go install github.com/checkmake/checkmake/cmd/checkmake@latest
@echo "Installing shellcheck..."
@go install github.com/koalaman/shellcheck/cmd/shellcheck@latest
@echo "Installing shfmt..."
@go install mvdan.cc/sh/v3/cmd/shfmt@latest
@echo "Installing yamllint (Go-based)..."
@go install github.com/excilsploft/yamllint@latest
@echo "Installing editorconfig-checker..."
@go install github.com/editorconfig-checker/editorconfig-checker/\
cmd/editorconfig-checker@latest
@echo "All tools installed successfully!"
# Run linters # Run linters
lint: lint:
@@ -51,40 +24,11 @@ lint:
# Run linters with auto-fix # Run linters with auto-fix
lint-fix: lint-fix:
@echo "Running gofumpt..." @./scripts/lint-fix.sh
@gofumpt -l -w .
@echo "Running golines..."
@golines -w -m 120 --base-formatter="gofumpt" --shorten-comments .
@echo "Running goimports..."
@goimports -w -local github.com/ivuorinen/gibidify .
@echo "Running go fmt..."
@go fmt ./...
@echo "Running go mod tidy..."
@go mod tidy
@echo "Running shfmt formatting..."
@shfmt -w -i 0 -ci .
@echo "Running golangci-lint with --fix..."
@golangci-lint run --fix ./...
@echo "Auto-fix completed. Running final lint check..."
@golangci-lint run ./...
@echo "Running revive..."
@revive -config revive.toml -formatter friendly ./...
@echo "Running checkmake..."
@checkmake --config=.checkmake Makefile
@echo "Running yamllint..."
@yamllint .
# Run linters with verbose output # Run linters with verbose output
lint-verbose: lint-verbose:
@echo "Running golangci-lint (verbose)..." @./scripts/lint-verbose.sh
@golangci-lint run -v ./...
@echo "Running checkmake (verbose)..."
@checkmake --config=.checkmake \
--format="{{.Line}}:{{.Rule}}:{{.Violation}}" Makefile
@echo "Running shfmt check (verbose)..."
@shfmt -d .
@echo "Running yamllint (verbose)..."
@yamllint .
# Run tests # Run tests
test: test:
@@ -93,14 +37,7 @@ test:
# Run tests with coverage output # Run tests with coverage output
test-coverage: test-coverage:
@echo "Running tests with coverage..." @./scripts/test-coverage.sh
@go test -race -v -coverprofile=coverage.out -covermode=atomic ./...
@echo ""
@echo "Coverage summary:"
@go tool cover -func=coverage.out | grep total:
@echo ""
@echo "Full coverage report saved to: coverage.out"
@echo "To view HTML report, run: make coverage"
# Run tests with coverage # Run tests with coverage
coverage: coverage:
@@ -173,23 +110,10 @@ vuln-check:
# Dependency management targets # Dependency management targets
deps-check: deps-check:
@echo "Checking for available dependency updates..." @./scripts/deps-check.sh
@echo ""
@echo "Direct dependencies:"
@go list -u -m all | grep -v "indirect" | column -t
@echo ""
@echo "Note: Run 'make deps-update' to update all dependencies"
deps-update: deps-update:
@echo "Updating all dependencies to latest versions..." @./scripts/deps-update.sh
@go get -u ./...
@go mod tidy
@echo ""
@echo "Dependencies updated successfully!"
@echo "Running tests to verify compatibility..."
@go test ./...
@echo ""
@echo "Update complete. Run 'make lint-fix && make test' to verify."
deps-tidy: deps-tidy:
@echo "Cleaning up dependencies..." @echo "Cleaning up dependencies..."

9
scripts/deps-check.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/sh
set -eu
echo "Checking for available dependency updates..."
echo ""
echo "Direct dependencies:"
go list -u -m all | grep -v "indirect" | column -t
echo ""
echo "Note: Run 'make deps-update' to update all dependencies"

12
scripts/deps-update.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -eu
echo "Updating all dependencies to latest versions..."
go get -u ./...
go mod tidy
echo ""
echo "Dependencies updated successfully!"
echo "Running tests to verify compatibility..."
go test ./...
echo ""
echo "Update complete. Run 'make lint-fix && make test' to verify."

30
scripts/install-tools.sh Executable file
View File

@@ -0,0 +1,30 @@
#!/bin/sh
set -eu
echo "Installing golangci-lint..."
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
echo "Installing gofumpt..."
go install mvdan.cc/gofumpt@latest
echo "Installing golines..."
go install github.com/segmentio/golines@latest
echo "Installing goimports..."
go install golang.org/x/tools/cmd/goimports@latest
echo "Installing staticcheck..."
go install honnef.co/go/tools/cmd/staticcheck@latest
echo "Installing gosec..."
go install github.com/securego/gosec/v2/cmd/gosec@latest
echo "Installing gocyclo..."
go install github.com/fzipp/gocyclo/cmd/gocyclo@latest
echo "Installing revive..."
go install github.com/mgechev/revive@latest
echo "Installing checkmake..."
go install github.com/checkmake/checkmake/cmd/checkmake@latest
echo "Installing shellcheck..."
go install github.com/koalaman/shellcheck/cmd/shellcheck@latest
echo "Installing shfmt..."
go install mvdan.cc/sh/v3/cmd/shfmt@latest
echo "Installing yamllint (Go-based)..."
go install github.com/excilsploft/yamllint@latest
echo "Installing editorconfig-checker..."
go install github.com/editorconfig-checker/editorconfig-checker/cmd/editorconfig-checker@latest
echo "All tools installed successfully!"

25
scripts/lint-fix.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/sh
set -eu
echo "Running gofumpt..."
gofumpt -l -w .
echo "Running golines..."
golines -w -m 120 --base-formatter="gofumpt" --shorten-comments .
echo "Running goimports..."
goimports -w -local github.com/ivuorinen/gibidify .
echo "Running go fmt..."
go fmt ./...
echo "Running go mod tidy..."
go mod tidy
echo "Running shfmt formatting..."
shfmt -w -i 0 -ci .
echo "Running golangci-lint with --fix..."
golangci-lint run --fix ./...
echo "Auto-fix completed. Running final lint check..."
golangci-lint run ./...
echo "Running revive..."
revive -config revive.toml -formatter friendly ./...
echo "Running checkmake..."
checkmake --config=.checkmake Makefile
echo "Running yamllint..."
yamllint .

11
scripts/lint-verbose.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
set -eu
echo "Running golangci-lint (verbose)..."
golangci-lint run -v ./...
echo "Running checkmake (verbose)..."
checkmake --config=.checkmake --format="{{.Line}}:{{.Rule}}:{{.Violation}}" Makefile
echo "Running shfmt check (verbose)..."
shfmt -d .
echo "Running yamllint (verbose)..."
yamllint .

11
scripts/test-coverage.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
set -eu
echo "Running tests with coverage..."
go test -race -v -coverprofile=coverage.out -covermode=atomic ./...
echo ""
echo "Coverage summary:"
go tool cover -func=coverage.out | grep total:
echo ""
echo "Full coverage report saved to: coverage.out"
echo "To view HTML report, run: make coverage"