@@ -127,35 +127,27 @@ docker-build: test
127
127
docker-push:
128
128
docker push ${IMG}
129
129
130
- # find or download controller-gen
131
- # download controller-gen if necessary
130
+ # Download controller-gen locally if necessary
131
+ CONTROLLER_GEN = $(shell pwd)/bin/ controller-gen
132
132
controller-gen:
133
- ifeq (, $(shell which controller-gen))
134
- @{ \
135
- set -e ;\
136
- CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
137
- cd $$CONTROLLER_GEN_TMP_DIR ;\
138
- go mod init tmp ;\
139
- go get sigs.k8s.io/controller-tools/cmd/controller-gen@{{ .ControllerToolsVersion }} ;\
140
- rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
141
- }
142
- CONTROLLER_GEN=$(GOBIN)/controller-gen
143
- else
144
- CONTROLLER_GEN=$(shell which controller-gen)
145
- endif
133
+ $(call go-get-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/controller-gen@{{ .ControllerToolsVersion }})
146
134
135
+ # Download kustomize locally if necessary
136
+ KUSTOMIZE = $(shell pwd)/bin/kustomize
147
137
kustomize:
148
- ifeq (, $(shell which kustomize))
149
- @{ \
150
- set -e ;\
151
- KUSTOMIZE_GEN_TMP_DIR=$$(mktemp -d) ;\
152
- cd $$KUSTOMIZE_GEN_TMP_DIR ;\
153
- go mod init tmp ;\
154
- go get sigs.k8s.io/kustomize/kustomize/v3@{{ .KustomizeVersion }} ;\
155
- rm -rf $$KUSTOMIZE_GEN_TMP_DIR ;\
156
- }
157
- KUSTOMIZE=$(GOBIN)/kustomize
158
- else
159
- KUSTOMIZE=$(shell which kustomize)
160
- endif
138
+ $(call go-get-tool,$(KUSTOMIZE),sigs.k8s.io/kustomize/kustomize/v3@{{ .KustomizeVersion }})
139
+
140
+ # go-get-tool will 'go get' any package $2 and install it to $1.
141
+ PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
142
+ define go-get-tool
143
+ @[ -f $(1) ] || { \
144
+ set -e ;\
145
+ TMP_DIR=$$(mktemp -d) ;\
146
+ cd $$TMP_DIR ;\
147
+ go mod init tmp ;\
148
+ echo "Downloading $(2)" ;\
149
+ GOBIN=$(PROJECT_DIR)/bin go get $(2) ;\
150
+ rm -rf $$TMP_DIR ;\
151
+ }
152
+ endef
161
153
`
0 commit comments