diff --git a/pkg/package.mk b/pkg/package.mk index 96297159a..1e2971d5c 100644 --- a/pkg/package.mk +++ b/pkg/package.mk @@ -5,18 +5,8 @@ ORG?=linuxkit HASH?=$(shell git ls-tree HEAD -- ../$(notdir $(CURDIR)) | awk '{print $$3}') BASE_DEPS=Dockerfile Makefile -# Add '-dirty' to hash if the repository is not clean. make does not -# concatenate strings without spaces, so we use the documented trick -# of replacing the space with nothing. -DIRTY=$(shell git diff-index --quiet HEAD --; echo $$?) -ifneq ($(DIRTY),0) -HASH+=-dirty -nullstring := -space := $(nullstring) $(nullstring) -TAG=$(subst $(space),,$(HASH)) -else -TAG=$(HASH) -endif +DIRTY=$(shell git diff-index --quiet HEAD -- ) || echo "-dirty") +TAG=$(HASH)$(DIRTY) # Get a release tag, if present RELEASE=$(shell git tag -l --points-at HEAD) @@ -35,7 +25,7 @@ tag: $(BASE_DEPS) $(DEPS) docker build $(NET_OPT) -t $(ORG)/$(IMAGE):$(TAG) . push: tag -ifneq ($(DIRTY),0) +ifneq ($(DIRTY),) $(error Your repository is not clean. Will not push package image.) endif DOCKER_CONTENT_TRUST=1 docker pull $(ORG)/$(IMAGE):$(TAG) || \