#!/usr/bin/sh -ex
#
# This setup script will install an OS environment by default into
# /usr/share/qm/rootfs and create a Podman quadlet containerized environment
# running systemd as PID1 inside.
#
if [ "$EUID" -ne 0 ];then
    echo "Please run this script as root"
    exit 1
fi

INSTALLDIR="$1"
[ ! -z "${INSTALLDIR}" ] || INSTALLDIR=/usr/share/qm

ROOTFS="$2"
[ ! -z "${ROOTFS}" ] || ROOTFS=/usr/lib/qm/rootfs

. /etc/os-release

systemctl stop qm 2> /dev/null

install() {
    rootfs=$1
    mkdir -p ${rootfs}/etc/pki
    cp -pR /etc/pki/rpm-gpg ${rootfs}/etc/pki
    restorecon -R ${rootfs}
    dnf -y install --releasever=${VERSION_ID} --installroot ${rootfs} selinux-policy-targeted podman systemd hirte
    dnf -y update --installroot ${rootfs}
    rm -rf ${rootfs}/etc/selinux/targeted/contexts/files/file_contexts/*
    cp ${INSTALLDIR}/containers.conf ${rootfs}/etc/containers/
    cp ${INSTALLDIR}/contexts ${rootfs}/usr/share/containers/selinux/
    cp ${INSTALLDIR}/file_contexts ${rootfs}/etc/selinux/targeted/contexts/files/file_contexts
    restorecon -R ${rootfs}
}

install ${ROOTFS}

systemctl daemon-reload
systemctl start qm.service
