installs joeac.net services as separate OpenRC services
This commit is contained in:
@@ -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;)
|
||||
|
||||
+7
-6
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user