From c6ff40e28894417d87ee7858438f28fc262ffb40 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Fri, 26 Jun 2026 14:08:37 +0100 Subject: moves openrc -> openrc/init.d --- Makefile | 4 +-- openrc/init.d/joeac.net | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ openrc/joeac.net | 64 ------------------------------------------------ 3 files changed, 67 insertions(+), 66 deletions(-) create mode 100755 openrc/init.d/joeac.net delete mode 100755 openrc/joeac.net diff --git a/Makefile b/Makefile index 9056fe6..ec74aa0 100644 --- a/Makefile +++ b/Makefile @@ -116,10 +116,10 @@ endif $(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 ~/.config/rc/runlevels/default +~/.config/rc/init.d/joeac.net: openrc/init.d/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 + cp openrc/init.d/joeac.net ~/.config/rc/init.d/joeac.net ~/.config/rc/init.d: mkdir -p ~/.config/rc/init.d diff --git a/openrc/init.d/joeac.net b/openrc/init.d/joeac.net new file mode 100755 index 0000000..afe79bd --- /dev/null +++ b/openrc/init.d/joeac.net @@ -0,0 +1,65 @@ +#!/sbin/openrc-run +# credits: +# 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 "${MODULENAME}" ] && exit 1 +: ${COMPOSEFILE:="${SRCDIR}/compose.yml"} +: ${MAKEFILE:="${SRCDIR}/Makefile"} +COMPOSECMD="/usr/bin/podman-compose" +export COMPOSE_HTTP_TIMEOUT=300 + +description="Manage dockerservices defined in ${COMPOSEFILE}" +extra_commands="configtest" +description_configtest="Check configuration via \"podman-compose -f ${COMPOSEFILE} config\"" + +configtest() { + if ! [ -f "${COMPOSEFILE}" ]; then + eerror "The docker-compose file ${COMPOSEFILE} does not exist!" + return 1 + fi + if "${COMPOSECMD}" -f "${COMPOSEFILE}" config >&/dev/null; then + einfo "config: ok" + else + eerror "config: error" + return 1 + fi +} + +start() { + configtest || return 1 + ebegin "Starting ${MODULENAME}" + "${COMPOSECMD}" -f "${COMPOSEFILE}" up -d ${DOCKER_COMPOSE_UP_ARGS} ${MODULENAME} + eend $? +} + +stop() { + ebegin "Stopping ${MODULENAME}" + "${COMPOSECMD}" -f "${COMPOSEFILE}" down --timeout=5 ${MODULENAME} + eend $? +} + +status() { + pods=0 + started=0 + while read pod; do + pod_service="$(podman inspect $pod | jq .[0].Config.Labels.[\"com.docker.compose.service\"])" + if ! [ "$pod_service" = "\"${MODULENAME}\"" ]; then + continue + fi + pods=$(($pods+1)) + if podman top $pod &>/dev/null; then + einfo "status: [$pod] started" + exit 0 + else + einfo "status: [$pod] stopped" + exit 3 + fi + done < <("${COMPOSECMD}" -f "${COMPOSEFILE}" ps --quiet) + einfo "status: no container found for ${MODULENAME}" + exit 3 +} diff --git a/openrc/joeac.net b/openrc/joeac.net deleted file mode 100755 index 3a45694..0000000 --- a/openrc/joeac.net +++ /dev/null @@ -1,64 +0,0 @@ -#!/sbin/openrc-run -# credits: -# 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 "${MODULENAME}" ] && exit 1 -: ${COMPOSEFILE:="${SRCDIR}/compose.yml"} -: ${MAKEFILE:="${SRCDIR}/Makefile"} -COMPOSECMD="/usr/bin/podman-compose" -export COMPOSE_HTTP_TIMEOUT=300 - -description="Manage dockerservices defined in ${COMPOSEFILE}" -extra_commands="configtest" -description_configtest="Check configuration via \"podman-compose -f ${COMPOSEFILE} config\"" - -configtest() { - if ! [ -f "${COMPOSEFILE}" ]; then - eerror "The docker-compose file ${COMPOSEFILE} does not exist!" - return 1 - fi - if "${COMPOSECMD}" -f "${COMPOSEFILE}" config >&/dev/null; then - einfo "config: ok" - else - eerror "config: error" - return 1 - fi -} - -start() { - configtest || return 1 - ebegin "Starting ${MODULENAME}" - "${COMPOSECMD}" -f "${COMPOSEFILE}" up -d ${DOCKER_COMPOSE_UP_ARGS} ${MODULENAME} - eend $? -} - -stop() { - ebegin "Stopping ${MODULENAME}" - "${COMPOSECMD}" -f "${COMPOSEFILE}" down --timeout=5 ${MODULENAME} - eend $? -} - -status() { - pods=0 - started=0 - while read pod; do - pods=$(($pods+1)) - if podman top $pod &>/dev/null; then - einfo "status: [$pod] started" - started=$(($started+1)) - else - einfo "status: [$pod] stopped" - fi - done < <("${COMPOSECMD}" -f "${COMPOSEFILE}" ps --quiet ${MODULENAME}) - if [ $started -eq $pods ]; then - einfo "status: started" - else - einfo "status: stopped" - return 3 - fi -} -- cgit v1.2.3