summaryrefslogtreecommitdiff
path: root/make
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-07-02 08:53:24 +0100
committerJoe Carstairs <me@joeac.net>2026-07-02 08:53:24 +0100
commit6bc1f2d05f43eb8aeff8d8962489ecbbaf41d532 (patch)
tree88848b0b43dd0cb759f2f61cba63e1a940296f2c /make
parentc736041f3cf09490db5a5c9341958b6a7435196c (diff)
prunes nginx sites on reinstall
Diffstat (limited to 'make')
-rw-r--r--make/nginx.mk13
1 files changed, 12 insertions, 1 deletions
diff --git a/make/nginx.mk b/make/nginx.mk
index 85a7be4..cc52a9c 100644
--- a/make/nginx.mk
+++ b/make/nginx.mk
@@ -1,3 +1,8 @@
+installed_nginx_sites = $(wildcard /etc/nginx/http.d/*.joeac.net.conf)
+installed_nginx_subdomains = $(installed_nginx_sites:/etc/nginx/http.d/%.joeac.net.conf=%)
+nginx_subdomains_to_remove = $(filter-out $(SUBDOMAINS),$(installed_nginx_subdomains))
+nginx_sites_to_remove = $(nginx_subdomains_to_remove:%=/etc/nginx/http.d/%.joeac.net.conf)
+
define install_nginx_module_rule =
.PHONY: install_nginx_$(module)
install_nginx_$(module): $(if $(SUBDOMAIN_$(module)),/etc/nginx/http.d/$(SUBDOMAIN_$(module)).joeac.net.conf)
@@ -14,9 +19,15 @@ uninstall_nginx_$(module):
(if $(SUBDOMAIN_$(module)),rm -f /etc/nginx/http.d/$(SUBDOMAIN_$(module)).joeac.net.conf)
endef
+define remove_nginx_site_rule =
+remove_$(site):
+ rm -f $(site)
+endef
+
$(foreach module,$(MODULES),$(eval $(install_nginx_module_rule)))
$(foreach module,$(MODULES),$(eval $(reinstall_nginx_module_rule)))
$(foreach module,$(MODULES),$(eval $(uninstall_nginx_module_rule)))
+$(foreach site,$(nginx_sites_to_remove),$(eval $(remove_nginx_site_rule)))
/etc/nginx/http.d/%.joeac.net.conf: nginx/http.d/%.joeac.net.conf /etc/nginx/http.d /etc/nginx/nginx.conf
sudo cp $< $@
@@ -29,7 +40,7 @@ $(foreach module,$(MODULES),$(eval $(uninstall_nginx_module_rule)))
install_nginx: /etc/nginx/nginx.conf $(add_prefix install_nginx_,$(NGINX_MODULES))
.PHONY: reinstall_nginx
-reinstall_nginx: /etc/nginx/nginx.conf $(add_prefix reinstall_nginx_,$(NGINX_MODULES))
+reinstall_nginx: /etc/nginx/nginx.conf $(add_prefix reinstall_nginx_,$(NGINX_MODULES)) $(addprefix remove_,$(nginx_sites_to_remove))
.PHONY: uninstall_nginx
uninstall_nginx: $(foreach module,$(NGINX_MODULES),uninstall_nginx_$(module))