Add more checks to makefile
We're trying to prevent clobbering other's changes or forgetting to push ours.
This commit is contained in:
parent
b064468a3d
commit
f0e76b814b
1 changed files with 20 additions and 5 deletions
25
Makefile
25
Makefile
|
@ -10,12 +10,27 @@ sign: $(patsubst %,%.sig,$(wildcard *.zone))
|
||||||
|
|
||||||
.PHONY: check-clean
|
.PHONY: check-clean
|
||||||
check-clean:
|
check-clean:
|
||||||
[ ! -e .git ] || git diff-index --exit-code HEAD
|
@git diff-index --exit-code HEAD >/dev/null && \
|
||||||
[ ! -e .git ] || \
|
git ls-files --other --directory --exclude-standard | \
|
||||||
git ls-files --other --directory --exclude-standard | \
|
sed -n '/.*\.zone/{p;q1}' || { \
|
||||||
sed -n '/.*\.zone/{p;q1}'
|
printf 'Commit your changes before uploading!\n' >&2; \
|
||||||
|
git status -s; exit 1; }
|
||||||
|
|
||||||
upload:
|
GIT_BRANCH=$(shell git name-rev --name-only HEAD)
|
||||||
|
GIT_BRANCH_REMOTE=$(shell git config branch.$(GIT_BRANCH).remote)
|
||||||
|
GIT_BRANCH_MERGE=$(shell git config branch.$(GIT_BRANCH).merge) # remote branch
|
||||||
|
.PHONY: fetch
|
||||||
|
check-uptodate: FORCE
|
||||||
|
git fetch $(GIT_BRANCH_REMOTE) $(GIT_BRANCH_MERGE)
|
||||||
|
@[ -z "`git rev-list -n1 HEAD@{upstream} --not HEAD`" ] || { \
|
||||||
|
printf 'Unpulled changes, refusing to upload zones!\n' >&2; \
|
||||||
|
git log --decorate --oneline --graph -n3 \
|
||||||
|
HEAD@{upstream} --not HEAD; \
|
||||||
|
}
|
||||||
|
|
||||||
|
.PHONY: upload
|
||||||
|
upload: check-clean check-uptodate
|
||||||
|
upload: sign
|
||||||
printf 'put %s\n' *.zone *.sig | \
|
printf 'put %s\n' *.zone *.sig | \
|
||||||
sftp $(SFTP_FLAGS) zones@ns0.it-syndikat.org:zones/
|
sftp $(SFTP_FLAGS) zones@ns0.it-syndikat.org:zones/
|
||||||
|
|
||||||
|
|
Reference in a new issue