|
| 1 | +# From where to resolve the containers (e.g. "otel/weaver"). |
| 2 | +WEAVER_CONTAINER_REPOSITORY=docker.io |
| 3 | +# Versioned, non-qualified references to containers used in this Makefile. |
| 4 | +# These are parsed from dependencies.Dockerfile so dependabot will autoupdate |
| 5 | +# the versions of docker files we use. |
| 6 | +VERSIONED_WEAVER_CONTAINER_NO_REPO=$(shell cat buildscripts/dependencies.Dockerfile | awk '$$4=="weaver" {print $$2}') |
| 7 | +# Versioned, non-qualified references to containers used in this Makefile. |
| 8 | +WEAVER_CONTAINER=$(WEAVER_CONTAINER_REPOSITORY)/$(VERSIONED_WEAVER_CONTAINER_NO_REPO) |
| 9 | + |
| 10 | +# Next - we want to run docker as our local file user, so generated code is not |
| 11 | +# owned by root, and we don't give unnecessary access. |
| 12 | +# |
| 13 | +# Determine if "docker" is actually podman |
| 14 | +DOCKER_VERSION_OUTPUT := $(shell docker --version 2>&1) |
| 15 | +DOCKER_IS_PODMAN := $(shell echo $(DOCKER_VERSION_OUTPUT) | grep -c podman) |
| 16 | +ifeq ($(DOCKER_IS_PODMAN),0) |
| 17 | + DOCKER_COMMAND := docker |
| 18 | +else |
| 19 | + DOCKER_COMMAND := podman |
| 20 | +endif |
| 21 | +DOCKER_RUN=$(DOCKER_COMMAND) run |
| 22 | +DOCKER_USER=$(shell id -u):$(shell id -g) |
| 23 | +DOCKER_USER_IS_HOST_USER_ARG=-u $(DOCKER_USER) |
| 24 | +ifeq ($(DOCKER_COMMAND),podman) |
| 25 | + # On podman, additional arguments are needed to make "-u" work |
| 26 | + # correctly with the host user ID and host group ID. |
| 27 | + # |
| 28 | + # Error: OCI runtime error: crun: setgroups: Invalid argument |
| 29 | + DOCKER_USER_IS_HOST_USER_ARG=--userns=keep-id -u $(DOCKER_USER) |
| 30 | +endif |
| 31 | + |
| 32 | +.PHONY: generate-docs |
| 33 | +generate-docs: |
| 34 | + mkdir -p docs |
| 35 | + $(DOCKER_RUN) --rm \ |
| 36 | + $(DOCKER_USER_IS_HOST_USER_ARG) \ |
| 37 | + --mount 'type=bind,source=$(PWD)/model,target=/home/weaver/model,readonly' \ |
| 38 | + --mount 'type=bind,source=$(PWD)/templates,target=/home/weaver/templates,readonly' \ |
| 39 | + --mount 'type=bind,source=$(PWD)/docs,target=/home/weaver/target' \ |
| 40 | + ${WEAVER_CONTAINER} registry generate \ |
| 41 | + --registry=/home/weaver/model \ |
| 42 | + markdown \ |
| 43 | + --future \ |
| 44 | + /home/weaver/target |
| 45 | + |
| 46 | +.PHONY: check |
| 47 | +check: |
| 48 | + $(DOCKER_RUN) --rm \ |
| 49 | + $(DOCKER_USER_IS_HOST_USER_ARG) \ |
| 50 | + --mount 'type=bind,source=$(PWD)/model,target=/home/weaver/model,readonly' \ |
| 51 | + --mount 'type=bind,source=$(PWD)/templates,target=/home/weaver/templates,readonly' \ |
| 52 | + --mount 'type=bind,source=$(PWD)/docs,target=/home/weaver/target' \ |
| 53 | + ${WEAVER_CONTAINER} registry check \ |
| 54 | + --registry=/home/weaver/model |
| 55 | + |
| 56 | +.PHONY: generate-java |
| 57 | +generate-java: |
| 58 | + mkdir -p src/main/java/com/splunk/ibm/mq/metrics |
| 59 | + $(DOCKER_RUN) --rm \ |
| 60 | + $(DOCKER_USER_IS_HOST_USER_ARG) \ |
| 61 | + --mount 'type=bind,source=$(PWD)/model,target=/home/weaver/model,readonly' \ |
| 62 | + --mount 'type=bind,source=$(PWD)/templates,target=/home/weaver/templates,readonly' \ |
| 63 | + --mount 'type=bind,source=$(PWD)/src/main/java/com/splunk/ibm/mq/metrics,target=/home/weaver/target' \ |
| 64 | + ${WEAVER_CONTAINER} registry generate \ |
| 65 | + --registry=/home/weaver/model \ |
| 66 | + java \ |
| 67 | + --future \ |
| 68 | + /home/weaver/target |
| 69 | + |
| 70 | +.PHONY: generate-yaml |
| 71 | +generate-yaml: |
| 72 | + $(DOCKER_RUN) --rm \ |
| 73 | + $(DOCKER_USER_IS_HOST_USER_ARG) \ |
| 74 | + --mount 'type=bind,source=$(PWD)/model,target=/home/weaver/model,readonly' \ |
| 75 | + --mount 'type=bind,source=$(PWD)/templates,target=/home/weaver/templates,readonly' \ |
| 76 | + --mount 'type=bind,source=$(PWD)/,target=/home/weaver/target' \ |
| 77 | + ${WEAVER_CONTAINER} registry generate \ |
| 78 | + --registry=/home/weaver/model \ |
| 79 | + yaml \ |
| 80 | + --future \ |
| 81 | + /home/weaver/target |
| 82 | + |
| 83 | +.PHONY: generate |
| 84 | +generate: generate-docs generate-yaml generate-java |
0 commit comments