diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0ebcf57 --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +BASE_REF ?= main +HEAD_REF ?= $(shell git rev-parse HEAD) + +.PHONY: review +review: + @echo "Ensuring Cargo.lock is in clean state, not modified" + test -z "$(shell git status --porcelain | grep -E 'M +Cargo.lock')" + @echo "Ensuring current HEAD_REF is not BASE_REF" + test "$(shell git rev-parse $(BASE_REF))" != "$(HEAD_REF)" + @echo "Verifying if any changes happened in Cargo.lock that require review" + test "$(shell git show $(BASE_REF):Cargo.lock | sha256sum)" != "$(shell git show $(HEAD_REF):Cargo.lock | sha256sum)" + $(eval TEMP_REPO := $(shell mktemp -d)) + git -C $(TEMP_REPO) init + # Fetch files for BASE_REF + git show $(BASE_REF):Cargo.lock > $(TEMP_REPO)/Cargo.lock + CARGO_HOME=$(TEMP_REPO)/cargo-home cargo fetch + git -C $(TEMP_REPO) add . + git -C $(TEMP_REPO) commit --no-gpg-sign -m "base ref: $(BASE_REF)" + # Fetch files for HEAD_REF + git show $(HEAD_REF):Cargo.lock > $(TEMP_REPO)/Cargo.lock + CARGO_HOME=$(TEMP_REPO)/cargo-home cargo fetch + git -C $(TEMP_REPO) add -A . + git -C $(TEMP_REPO) difftool HEAD || true + rm -rf $(TEMP_REPO)