#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh

command -v getarg >/dev/null || . /usr/lib/dracut-lib.sh

set -e

# Generators don't have logging right now
# https://github.com/systemd/systemd/issues/15638
exec 1>/dev/kmsg; exec 2>&1

# if we're not running in dracut, skip
if [ -z "$(getarg fdo.manufacturing_server_url)" ]; then
    exit 0
fi

manufacturing_server_url=$(getarg fdo.manufacturing_server_url= ||:)
diun_pub_key_insecure=$(getarg fdo.diun_pub_key_insecure= ||:)
diun_pub_key_hash=$(getarg fdo.diun_pub_key_hash= ||:)
diun_pub_key_root_certs=$(getarg fdo.diun_pub_key_root_certs= ||:)
cat >"/etc/manufacturing-client-config" <<EOF
# Automatically generated by live-generator
MANUFACTURING_SERVER_URL="${manufacturing_server_url}"
EOF
if [ -n "${diun_pub_key_insecure}" ]; then
cat >>"/etc/manufacturing-client-config" <<EOF
DIUN_PUB_KEY_INSECURE="${diun_pub_key_insecure}"
EOF
fi
if [ -n "${diun_pub_key_hash}" ]; then
cat >>"/etc/manufacturing-client-config" <<EOF
DIUN_PUB_KEY_HASH="${diun_pub_key_hash}"
EOF
fi
if [ -n "${diun_pub_key_root_certs}" ]; then
cat >>"/etc/manufacturing-client-config" <<EOF
DIUN_PUB_KEY_ROOTCERTS="${diun_pub_key_root_certs}"
EOF
fi