Skip to content

Commit 1b3a599

Browse files
committed
add makefile
1 parent 0dea3a6 commit 1b3a599

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

ibm-mq-metrics/Makefile

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
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

Comments
 (0)