From eca4b1248977b8d3d688922847b1928e0ab9738b Mon Sep 17 00:00:00 2001 From: Shin'ya Minazuki Date: Wed, 8 Jul 2026 19:29:22 -0300 Subject: [PATCH] Introduce the dinit eclass Signed-off-by: Shin'ya Minazuki --- eclass/dinit.eclass | 61 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 eclass/dinit.eclass diff --git a/eclass/dinit.eclass b/eclass/dinit.eclass new file mode 100644 index 0000000..9c4f671 --- /dev/null +++ b/eclass/dinit.eclass @@ -0,0 +1,61 @@ +# Copyright 2026 Shin'ya Minazuki +# SPDX-License-Identifier: BSD-3-Clause +# @ECLASS: dinit.eclass +# @MAINTAINER: +# Shin'ya Minazuki +# @AUTHOR: +# Shin'ya Minazuki +# @SUPPORTED_EAPIS: 8 +# @BLURB: helper functions to install service units for sys-process/dinit +# @DESCRIPTION: +# This eclass provides a set of functions to install unit files for +# https://davmac.org/projects/dinit +# @EXAMPLE: +# +# @CODE: +# inherit dinit +# +# src_install() { +# dinit_newservice "${FILESDIR}/gitea.dinit" "${PN}" +# } +# @CODE + +case ${EAPI} in + 8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + +if [[ ! ${_DINIT_ECLASS} ]]; then +_DINIT_ECLASS=1 + +# @FUNCTION: dinit_doservice +# @USAGE: +# @DESCRIPTION: +# Install dinit service(s). +# This function uses doins, therefore it is fatal +dinit_doservice() { + debug-print-function "${FUNCNAME}" "$@" + + ( + insopts -m 0644 + insinto "${D}/etc/dinit.d" + doins "${@}" + ) +} + +# @FUNCTION: dinit_newservice +# @USAGE: +# @DESCRIPTION: +# Install dinit service with a new name. +# This function uses newins, therefore it is fatal +dinit_newservice() { + debug-print-function ${FUNCNAME} "$@" + + ( + insopts -m 0644 + insinto "${D}/etc/dinit.d" + newins "${@}" + ) +} + +fi