Makefile: generate-files: fix check for empty TMP_OUT

commit c655b7dc78 added a check to make sure
the TMP_OUT variable was not set to an empty value, as such a situation would
perform an `rm -rf /**` during cleanup.

However, it was a bit too eager, because Makefile conditionals (`ifeq`) are
evaluated when parsing the Makefile, which happens _before_ the make target
is executed.

As a result `$@_TMP_OUT` was always empty when the `ifeq` was evaluated,
making it not possible to execute the `generate-files` target.

This patch changes the check to use a shell command to evaluate if the var
is set to an empty value.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2024-03-15 17:42:58 +01:00
parent 979f03f9f6
commit 25c9e6e8df
No known key found for this signature in database
GPG key ID: 76698F39D527CE8C

View file

@ -255,9 +255,10 @@ swagger-docs: ## preview the API documentation
.PHONY: generate-files .PHONY: generate-files
generate-files: generate-files:
$(eval $@_TMP_OUT := $(shell mktemp -d -t moby-output.XXXXXXXXXX)) $(eval $@_TMP_OUT := $(shell mktemp -d -t moby-output.XXXXXXXXXX))
ifeq ($($@_TMP_OUT),) @if [ -z "$($@_TMP_OUT)" ]; then \
$(error Could not create temp directory.) echo "Temp dir is not set"; \
endif exit 1; \
fi
$(BUILD_CMD) --target "update" \ $(BUILD_CMD) --target "update" \
--output "type=local,dest=$($@_TMP_OUT)" \ --output "type=local,dest=$($@_TMP_OUT)" \
--file "./hack/dockerfiles/generate-files.Dockerfile" . --file "./hack/dockerfiles/generate-files.Dockerfile" .