@@ -196,7 +196,31 @@ check_linter_support() {
196196
197197# Find golangci-lint binary
198198find_golangci_lint () {
199- # Check for custom build first
199+ # Check if Variables.mk exists and extract golangci-lint path
200+ if [[ -f " .bingo/Variables.mk" ]]; then
201+ # Extract the full path from GOLANGCI_LINT := $(GOBIN)/golangci-lint-v2.7.2
202+ local gobin
203+ gobin=$( grep ' ^GOBIN' .bingo/Variables.mk | head -1 | sed -E ' s/^GOBIN[[:space:]]*:?=[[:space:]]*//' | sed ' s/\$([^)]*)//' | xargs)
204+
205+ # If GOBIN is not found, use default
206+ if [[ -z " ${gobin} " ]]; then
207+ gobin=$( go env GOPATH | cut -d: -f1) /bin
208+ fi
209+
210+ # Extract version from GOLANGCI_LINT variable
211+ local version
212+ version=$( grep ' ^GOLANGCI_LINT' .bingo/Variables.mk | sed -E ' s/.*golangci-lint-(v[0-9.]+).*/\1/' )
213+
214+ if [[ -n " ${version} " ]]; then
215+ local bingo_path=" ${gobin} /golangci-lint-${version} "
216+ if [[ -f " ${bingo_path} " ]]; then
217+ echo " ${bingo_path} "
218+ return 0
219+ fi
220+ fi
221+ fi
222+
223+ # Check for custom build
200224 if [[ -f " .bingo/golangci-lint" ]]; then
201225 echo " .bingo/golangci-lint"
202226 return 0
@@ -216,6 +240,7 @@ find_golangci_lint() {
216240
217241 echo -e " ${RED} Error: golangci-lint not found.${NC} " >&2
218242 echo -e " ${RED} Searched for:${NC} " >&2
243+ echo -e " - .bingo/Variables.mk (bingo-managed versioned binary)" >&2
219244 echo -e " - .bingo/golangci-lint" >&2
220245 echo -e " - bin/golangci-lint" >&2
221246 echo -e " - golangci-lint on your \$ PATH" >&2
0 commit comments