From: Jóhann B. Guðmundsson Date: Tue, 19 Jan 2021 23:03:59 +0000 (+0000) Subject: feat(systemd-sysusers): introducing systemd-sysuser module X-Git-Tag: 052~134 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24ea8390794e9e7c31448e3c411a0dd295afdfaa;p=thirdparty%2Fdracut.git feat(systemd-sysusers): introducing systemd-sysuser module --- diff --git a/modules.d/01systemd-sysusers/module-setup.sh b/modules.d/01systemd-sysusers/module-setup.sh new file mode 100644 index 000000000..43616d0f1 --- /dev/null +++ b/modules.d/01systemd-sysusers/module-setup.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# This file is part of dracut. +# SPDX-License-Identifier: GPL-2.0-or-later + +# Prerequisite check(s) for module. +check() { + + # If the binary(s) requirements are not fulfilled + # return 1 to not include the binary. + require_binaries systemd-sysusers || return 1 + + # If the module dependency requirements are not fulfilled + # return 1 to not include the required module(s). + if ! dracut_module_included "systemd"; then + derror "systemd-sysuser needs systemd in the initramfs." + return 1 + fi + + # Return 255 to only include the module, if another module requires it. + return 255 + +} + +# Module dependency requirements. +depends() { + + # This module has external dependency on the systemd module. + echo systemd + # Return 0 to include the dependent systemd module in the initramfs. + return 0 + +} + +# Install the required file(s) for the module in the initramfs. +install() { + + inst_multiple -o \ + # Install the system users and groups configuration file. + $sysusers/basic.conf \ + # Install the systemd users and groups configuration file. + $sysusers/systemd.conf \ + # Install the systemd type service unit for sysusers. + $systemdsystemunitdir/systemd-sysusers.service \ + # Install the binary executable(s) for sysusers. + systemd-sysusers + + # Install the hosts local user configurations if enabled. + if [[ $hostonly ]]; then + inst_multiple -H -o \ + $sysusersconfdir/basic.conf \ + $sysusersconfdir/systemd.conf \ + $systemdsystemconfdir/systemd-sysusers.service \ + $systemdsystemconfdir/systemd-sysusers.service.d/*.conf + ${NULL} + fi + + # Enable the systemd type service unit for sysusers. + systemctl -q --root "$initdir" enable systemd-sysusers.service + +}