myos/make/apps/ufw.mk

61 lines
1.9 KiB
Makefile
Raw Normal View History

2022-11-18 15:01:16 +01:00
# target ufw: Call ufw ARGS
.PHONY: ufw
2022-11-16 17:34:30 +01:00
ufw:
$(call ufw,$(ARGS))
2023-03-21 10:06:08 +01:00
# target ufw-bootstrap: Eval ufw-docker app variables
ufw-bootstrap:
$(call app-bootstrap,$(lastword $(subst /, ,$(SETUP_UFW_REPOSITORY))))
# target ufw-build: Build ufw-docker docker
ufw-build:
$(call app-build)
2022-11-18 15:01:16 +01:00
# target ufw-delete: Fire ufw-update UFW_DELETE=true
.PHONY: ufw-delete
ufw-delete: UFW_DELETE := true
ufw-delete: ufw-update
# target ufw-docker: Call ufw-docker ARGS
.PHONY: ufw-docker
2022-11-16 17:34:30 +01:00
ufw-docker:
$(call ufw-docker,$(ARGS))
2022-11-18 15:01:16 +01:00
2023-03-21 10:06:08 +01:00
# target ufw-install: Download ufw-docker application
ufw-install:
$(call app-install,$(SETUP_UFW_REPOSITORY))
# target ufw-up: Start ufw-docker docker
ufw-up: COMPOSE_PROJECT_NAME := $(HOST_COMPOSE_PROJECT_NAME)
ufw-up: DOCKER_RUN_NETWORK :=
ufw-up: DOCKER_RUN_OPTIONS := --rm -d --cap-add NET_ADMIN -v /etc/ufw:/etc/ufw $(if wildcard /etc/default/ufw,-v /etc/default/ufw:/etc/default/ufw) --network host
ufw-up:
$(call app-up)
# target ufw-update: Call ufw and ufw-docker foreach service UFW_UPDATE
2022-11-18 15:01:16 +01:00
.PHONY: ufw-update
2022-11-22 23:49:44 +01:00
ufw-update: debug-UFW_UPDATE
2022-12-05 20:29:00 +01:00
$(eval name := $(COMPOSE_PROJECT_NAME))
$(foreach UPDATE,$(call UPPERCASE,$(UFW_UPDATE)), \
2022-12-09 20:17:22 +01:00
$(eval ufw_update := $($(if $(STACK_HOST),HOST_)$(UPDATE)_UFW_UPDATE)) \
$(eval ufw_docker := $($(if $(STACK_HOST),HOST_)$(UPDATE)_UFW_DOCKER)) \
2022-12-05 20:29:00 +01:00
$(foreach port,$(ufw_docker), \
$(call ufw-docker,$(if $(UFW_DELETE),delete) allow $(name)-$(call LOWERCASE,$(UPDATE)) $(port) ||:) \
2022-11-18 15:01:16 +01:00
) \
2022-12-05 20:29:00 +01:00
$(foreach port,$(ufw_update), \
2022-11-18 15:01:16 +01:00
$(call ufw,$(if $(UFW_DELETE),delete) allow $(port)) \
) \
)
2023-03-21 10:06:08 +01:00
# target ufw-%: Call ufw target for specific stack
2022-11-29 17:22:35 +01:00
## ex: ufw-host-update will update ufw rules for stack host
2023-03-21 10:06:08 +01:00
.PHONY: ufw-%
2022-11-18 15:01:16 +01:00
ufw-%:
$(eval stack := $(subst -$(lastword $(subst -, ,$*)),,$*))
$(eval command := $(lastword $(subst -, ,$*)))
$(if $(findstring -,$*), \
$(if $(filter ufw-$(command),$(MAKE_TARGETS)), \
$(call make,ufw-$(command) STACK="$(stack)") \
) \
)