#!/usr/bin/env bash # Copyright (c) Edgeless Systems GmbH # # SPDX-License-Identifier: AGPL-3.0-only # Note: This script is sourced. depends() { # expands to: systemd systemd-hostnamed systemd-networkd systemd-resolved systemd-timedated systemd-timesyncd echo systemd-network-management } install_and_enable_unit() { unit="$1" shift target="$1" shift inst_simple "${moddir:?}/${unit}" "${systemdsystemunitdir:?}/${unit}" mkdir -p "${initdir:?}${systemdsystemconfdir:?}/${target}.wants" ln_r "${systemdsystemunitdir}/${unit}" \ "${systemdsystemconfdir}/${target}.wants/${unit}" } install_path() { local dir="$1" shift mkdir -p "${initdir}/${dir}" } install() { inst_multiple \ bash inst_script "/usr/sbin/disk-mapper" \ "/usr/sbin/disk-mapper" inst_script "${moddir}/prepare-state-disk.sh" \ "/usr/sbin/prepare-state-disk" install_and_enable_unit "prepare-state-disk.service" \ "basic.target" install_and_enable_unit "configure-constel-csp.service" \ "basic.target" # aws nvme disks inst_multiple \ tail \ tr # azure scsi disks inst_multiple \ cut \ readlink # gcp nvme disks inst_multiple \ date \ xxd \ grep \ sed \ ln \ command \ readlink inst_script "/usr/sbin/nvme" \ "/usr/sbin/nvme" inst_script "/usr/lib/udev/google_nvme_id" \ "/usr/lib/udev/google_nvme_id" inst_rules "64-gce-disk-removal.rules" "65-gce-disk-naming.rules" inst_script "${moddir}/aws-nvme-disk.sh" \ "/usr/sbin/aws-nvme-disk" install_and_enable_unit "aws-nvme-disk.service" \ "basic.target" # TLS / CA store in initramfs install_path /etc/pki/tls/certs/ inst_simple /etc/pki/tls/certs/ca-bundle.crt \ /etc/pki/tls/certs/ca-bundle.crt # backport of https://github.com/dracutdevs/dracut/commit/dcbe23c14d13ca335ad327b7bb985071ca442f12 inst_simple "${moddir}/sysusers-dracut.conf" "${systemdsystemunitdir}/systemd-sysusers.service.d/sysusers-dracut.conf" }