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

set -eux

. /usr/lib/os-release

normal_dir=$1
# shellcheck disable=SC2034
early_dir=$2
# shellcheck disable=SC2034
late_dir=$3

if ! grep "kde-linux.live=1" /proc/cmdline; then
    echo "kde-linux.live=1 not in cmdline"
    exit 0
fi

if [ "$(readlink --canonicalize /dev/disk/by-partlabel/KDELinuxLive)" != "$(readlink --canonicalize /dev/gpt-auto-root)" ]; then
    echo "gpt-auto-root is not KDELinuxLive"
    exit 0
fi

cat <<- EOF > "$normal_dir/var-lib-flatpak.mount"
# Generated by $(basename "$0")
[Unit]
Description=Mount unit for /var/lib/flatpak
Before=kde-linux-volatile-var-lib-flatpak.service

[Mount]
What=/usr/share/factory/var/lib/flatpak
Where=/var/lib/flatpak
Options=bind

[Install]
WantedBy=multi-user.target
EOF

mkdir "$normal_dir/multi-user.target.wants/" || true
ln -sf ../var-lib-flatpak.mount "$normal_dir/multi-user.target.wants/var-lib-flatpak.mount"

cat <<- EOF > "$normal_dir/run-extensions-live.mount"
# Generated by $(basename "$0")
[Unit]
Description=KDE Linux Live Session Sysext
Before=kde-linux-live-setup.service

[Mount]
What=/dev/disk/by-partlabel/KDELinuxLiveExt
Where=/run/extensions/live
Type=erofs
Options=ro
EOF

ln -sf ../run-extensions-live.mount "$normal_dir/multi-user.target.wants/run-extensions-live.mount"

# Pull in live-setup here so it stays unreachable on installed systems.
mkdir "$normal_dir/multi-user.target.requires/" || true
mkdir "$normal_dir/display-manager.service.requires/" || true
ln -sf /usr/lib/systemd/system/kde-linux-live-setup.service \
    "$normal_dir/multi-user.target.requires/kde-linux-live-setup.service"
ln -sf /usr/lib/systemd/system/kde-linux-live-setup.service \
    "$normal_dir/display-manager.service.requires/kde-linux-live-setup.service"
