diff options
| author | Joe Carstairs <me@joeac.net> | 2026-06-26 11:14:31 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2026-06-29 07:32:35 +0100 |
| commit | 86509e2598fc5689b00b770e793c348988b32187 (patch) | |
| tree | 21a8462ae5cdeba440a23c0b71a4a34570350651 | |
| parent | adc5498641db3c308798ef6afa9eb0e9623d1475 (diff) | |
installs joeac.net services as separate OpenRC services
| -rw-r--r-- | Makefile | 46 | ||||
| -rwxr-xr-x | openrc/joeac.net | 13 |
2 files changed, 41 insertions, 18 deletions
@@ -38,6 +38,24 @@ $(module)/.env: .env cp .env $(module)/.env endef +define install_module_rule = +.PHONY: install_$(module) +install_$(module): ~/.config/rc/init.d/joeac.net ~/.config/rc/init.d/joeac.net.$(module) + +~/.config/rc/init.d/joeac.net.$(module): ~/.config/rc/init.d/joeac.net ~/.config/rc/runlevels/default + ln -s $(shell realpath ~/.config/rc/init.d/joeac.net) ~/.config/rc/init.d/joeac.net.$(module) + rc-update -U add joeac.net.$(module) default + rc-service -U joeac.net.$(module) start +endef + +define uninstall_module_rule = +.PHONY: uninstall_$(module) +uninstall_$(module): + rc-service -U joeac.net.$(module) stop + rc-update -U del joeac.net.$(module) default + rm ~/.config/rc/init.d/joeac.net.$(module) +endef + ######### # RULES # @@ -55,10 +73,13 @@ login_registry: podman login $(REGISTRY_DOMAIN) .PHONY: install -install: install_nginx install_service install_crontab next_steps +install: install_nginx $(foreach module,$(MODULES),install_$(module)) install_crontab .PHONY: uninstall -uninstall: uninstall_nginx uninstall_service uninstall_crontab +uninstall: uninstall_nginx uninstall_joeac.net_service $(foreach module,$(MODULES),uninstall_$(module)) uninstall_crontab + +.PHONY: uninstall_joeac.net_service + rm ~/.config/rc/joeac.net nginx_src := $(shell find -L nginx -type f) nginx_target := $(addprefix /etc/,$(nginx_src)) @@ -92,15 +113,20 @@ else sudo rc-service nginx restart endif -.PHONY: install_service -install_service: ~/.config/rc/init.d/joeac.net +$(foreach module,$(MODULES),$(eval $(install_module_rule))) +$(foreach module,$(MODULES),$(eval $(uninstall_module_rule))) -~/.config/rc/init.d/joeac.net: openrc/joeac.net +~/.config/rc/init.d/joeac.net: openrc/joeac.net ~/.config/rc/init.d ~/.config/rc/runlevels/default rm -f ~/.config/rc/init.d/joeac.net; \ mkdir -p ~/.config/rc/init.d; \ - cp openrc/joeac.net ~/.config/rc/init.d/joeac.net \ - && rc-update -U add joeac.net default \ - && rc-service -U joeac.net start; \ + cp openrc/joeac.net ~/.config/rc/init.d/joeac.net + +~/.config/rc/init.d: + mkdir -p ~/.config/rc/init.d + +~/.config/rc/runlevels/default: + mkdir -p ~/.config/rc/runlevels/default + @echo "now edit openrc/user-default-runlevel with your username, copy it to /etc/init.d, and add it to the system's default runlevel with \`rc-service add <SERVICE> default\`" .PHONY: uninstall_service uninstall_service: @@ -120,10 +146,6 @@ uninstall_crontab: > crontab.tmp sudo mv crontab.tmp /etc/periodic/daily/joeac.net -.PHONY: next_steps -next_steps: - @echo "Make sure that your user's default runlevel is triggered by OpenRC. If this isn't already happening, edit openrc/user-default-runlevel with your username, copy it to /etc/init.d, and add it to the system's default runlevel with \`rc-service add <SERVICE> default\`." - .PHONY: clean clean: $(foreach module,$(MODULES),$(MAKE) --directory=$(module) clean;) diff --git a/openrc/joeac.net b/openrc/joeac.net index 00ab3b2..3a45694 100755 --- a/openrc/joeac.net +++ b/openrc/joeac.net @@ -3,10 +3,11 @@ # https://gist.github.com/itzwam/2069e935385193207f7e5bea7156e21d # https://github.com/0x17de/dockerservice-openrc +: ${MODULENAME:=${RC_SVCNAME##*.}} : ${SRCDIR:=/usr/local/lib/joeac.net} DOCKER_COMPOSE_UP_ARGS=${DOCKER_COMPOSE_UP_ARGS-"--no-build --no-recreate --no-deps"} -[ -z "${SVCNAME}" ] && exit 1 +[ -z "${MODULENAME}" ] && exit 1 : ${COMPOSEFILE:="${SRCDIR}/compose.yml"} : ${MAKEFILE:="${SRCDIR}/Makefile"} COMPOSECMD="/usr/bin/podman-compose" @@ -31,14 +32,14 @@ configtest() { start() { configtest || return 1 - ebegin "Starting ${SVCNAME}" - "${COMPOSECMD}" -f "${COMPOSEFILE}" up -d ${DOCKER_COMPOSE_UP_ARGS} + ebegin "Starting ${MODULENAME}" + "${COMPOSECMD}" -f "${COMPOSEFILE}" up -d ${DOCKER_COMPOSE_UP_ARGS} ${MODULENAME} eend $? } stop() { - ebegin "Stopping ${SVCNAME}" - "${COMPOSECMD}" -f "${COMPOSEFILE}" down --timeout=5 + ebegin "Stopping ${MODULENAME}" + "${COMPOSECMD}" -f "${COMPOSEFILE}" down --timeout=5 ${MODULENAME} eend $? } @@ -53,7 +54,7 @@ status() { else einfo "status: [$pod] stopped" fi - done < <("${COMPOSECMD}" -f "${COMPOSEFILE}" ps --quiet) + done < <("${COMPOSECMD}" -f "${COMPOSEFILE}" ps --quiet ${MODULENAME}) if [ $started -eq $pods ]; then einfo "status: started" else |
