SDK_MODULE := git.dev.alexdunmow.com/block/core SDK_VERSION ?= $(shell git describe --tags --abbrev=0) SDK_DOWNSTREAM_DIRS := \ $(HOME)/src/blockninja/backend \ $(HOME)/src/assumechaos \ $(HOME)/src/bidbuddy \ $(HOME)/src/bidmasters \ $(HOME)/src/coterieos \ $(HOME)/src/messenger \ $(HOME)/src/perthplaygrounds \ $(HOME)/src/symposium .PHONY: update-sdk update-sdk: @set -e; \ for dir in $(SDK_DOWNSTREAM_DIRS); do \ if [ ! -f "$$dir/go.mod" ]; then \ echo "skip $$dir (no go.mod)"; \ continue; \ fi; \ echo "==> $$dir: $(SDK_MODULE)@$(SDK_VERSION)"; \ ( \ cd "$$dir"; \ go mod edit -dropreplace=$(SDK_MODULE) 2>/dev/null || true; \ go get $(SDK_MODULE)@$(SDK_VERSION); \ go mod tidy; \ if grep -q '^replace $(SDK_MODULE)' go.mod; then \ echo "replace directive still present in $$dir/go.mod" >&2; \ exit 1; \ fi; \ ); \ done .PHONY: check-sdk-pins check-sdk-pins: @set -e; \ for dir in $(SDK_DOWNSTREAM_DIRS); do \ if [ ! -f "$$dir/go.mod" ]; then \ continue; \ fi; \ if grep -q '^replace $(SDK_MODULE)' "$$dir/go.mod"; then \ echo "replace directive found in $$dir/go.mod" >&2; \ exit 1; \ fi; \ if ! grep -Eq '^[[:space:]]*$(SDK_MODULE)[[:space:]]+v[0-9]+\.[0-9]+\.[0-9]+' "$$dir/go.mod"; then \ echo "$(SDK_MODULE) is not pinned in $$dir/go.mod" >&2; \ exit 1; \ fi; \ done