Skip to content

Commit 235e6cf

Browse files
authored
Merge pull request tinkerbell#12 from tstromberg/lint-path2
Fix module detection bugs within golangci-lint invocation
2 parents 8f846e1 + f5a8256 commit 235e6cf

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ HADOLINT_VERSION ?= v2.7.0
77
SHELLCHECK_VERSION ?= v0.7.2
88
LINT_OS := $(shell uname)
99
LINT_ARCH := $(shell uname -m)
10+
LINT_ROOT := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
1011

1112
# shellcheck and hadolint lack arm64 native binaries: rely on x86-64 emulation
1213
ifeq ($(LINT_OS),Darwin)
@@ -16,7 +17,7 @@ ifeq ($(LINT_OS),Darwin)
1617
endif
1718

1819
LINT_LOWER_OS = $(shell echo $(LINT_OS) | tr '[:upper:]' '[:lower:]')
19-
GOLINT_CONFIG:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))/.golangci.yml
20+
GOLINT_CONFIG:=$(LINT_ROOT)/.golangci.yml
2021

2122
lint: out/linters/shellcheck-$(SHELLCHECK_VERSION)-$(LINT_ARCH)/shellcheck out/linters/hadolint-$(HADOLINT_VERSION)-$(LINT_ARCH) out/linters/golangci-lint-$(GOLINT_VERSION)-$(LINT_ARCH)
2223
out/linters/golangci-lint-$(GOLINT_VERSION)-$(LINT_ARCH) run

Makefile.tmpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
{{ if .Shell}}SHELLCHECK_VERSION ?= v0.7.2{{ end }}
88
LINT_OS := $(shell uname)
99
LINT_ARCH := $(shell uname -m)
10+
LINT_ROOT := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
1011

1112
# shellcheck and hadolint lack arm64 native binaries: rely on x86-64 emulation
1213
ifeq ($(LINT_OS),Darwin)
@@ -16,7 +17,7 @@ ifeq ($(LINT_OS),Darwin)
1617
endif
1718

1819
{{ if .Shell }}LINT_LOWER_OS = $(shell echo $(LINT_OS) | tr '[:upper:]' '[:lower:]'){{ end }}
19-
{{ if .Go }}GOLINT_CONFIG:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))/.golangci.yml{{ end }}
20+
{{ if .Go }}GOLINT_CONFIG:=$(LINT_ROOT)/.golangci.yml{{ end }}
2021

2122
lint: {{ if .Shell }}out/linters/shellcheck-$(SHELLCHECK_VERSION)-$(LINT_ARCH)/shellcheck {{ end }}{{ if .Dockerfile }}out/linters/hadolint-$(HADOLINT_VERSION)-$(LINT_ARCH) {{ end }}{{ if .Go}}out/linters/golangci-lint-$(GOLINT_VERSION)-$(LINT_ARCH){{ end }}
2223
{{- range .LintCommands }}

lint-install.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,12 @@ func goLintCmd(root string, level string, fix bool) string {
188188
suffix = " || true"
189189
}
190190

191-
if len(found) == 1 && found[0] == root {
191+
klog.Infof("found %d modules within %s: %s", len(found), root, found)
192+
if len(found) == 0 || (len(found) == 1 && found[0] == strings.Trim(root, "/")) {
192193
return fmt.Sprintf("out/linters/golangci-lint-$(GOLINT_VERSION)-$(LINT_ARCH) run%s", suffix)
193194
}
194195

195-
return fmt.Sprintf(`find . -name go.mod | xargs -n1 dirname | xargs -n1 -I{} sh -c "cd {} && golangci-lint run -c $(GOLINT_CONFIG)"%s`, suffix)
196+
return fmt.Sprintf(`find . -name go.mod -execdir "$(LINT_ROOT)/out/linters/golangci-lint-$(GOLINT_VERSION)-$(LINT_ARCH)" run -c "$(GOLINT_CONFIG)"%s \;`, suffix)
196197
}
197198

198199
// shellLintCmd returns the appropriate shell lint command for a project.

0 commit comments

Comments
 (0)