#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
# SPDX-FileCopyrightText: 2023-2024 Harald Sitter <sitter@kde.org>

set -ex

. /etc/os-release

kernel_version=""
for f in /usr/lib/modules/*/vmlinuz
do
  kernel_version="$(basename "$(dirname "$f")")"
done

# NOTE: plymouth MUST be after systemd as per the wiki!
cat <<- EOF > mkinitcpio.conf
MODULES=(overlay)
BINARIES=()
FILES=()
HOOKS=(base systemd modconf kms keyboard block sd-encrypt filesystems fsck systemd-extension plymouth microcode)
EOF

echo "rw rootflags=subvol=@kde-linux_$IMAGE_VERSION,compress=zstd:1 \
  systemd.volatile=overlay systemd.firstboot=false systemd.hostname=kde-linux kde-linux.live=1 plasma.live.user=live \
  lsm=landlock,lockdown,yama,integrity,apparmor,bpf \
  vt.global_cursor_default=0 quiet splash loglevel=3" > cmdline
mkinitcpio --config mkinitcpio.conf --generate initrd --kernel "$kernel_version"
ukify build \
  --linux /boot/vmlinuz-linux \
  --initrd initrd \
  --cmdline @cmdline \
  --output live.efi

# lsm= defaulting to apparmor from https://wiki.archlinux.org/title/AppArmor
echo "rw rootflags=subvol=@kde-linux_$IMAGE_VERSION,compress=zstd:1 \
  lsm=landlock,lockdown,yama,integrity,apparmor,bpf \
  vt.global_cursor_default=0 quiet splash loglevel=3" > cmdline
mkinitcpio --config mkinitcpio.conf --generate initrd --kernel "$kernel_version"
ukify build \
  --linux /boot/vmlinuz-linux \
  --initrd initrd \
  --cmdline @cmdline \
  --output kde-linux.efi
