#!/bin/bash

CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")

# Install luks utilities if needed.
# Also, set secure permissions for the initramfs if we're configuring
# full-disk-encryption. The initramfs is re-generated later in the
# installation process so we only set the permissions snippet without
# regenerating the initramfs right now:
if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then
    echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions
    chroot $CHROOT apt-get -y install cryptsetup-initramfs cryptsetup keyutils
fi

echo "Running bootloader-config..."

# Detect architecture and install the appropriate GRUB package
ARCH=$(uname -m)
case "$ARCH" in
    x86_64)
        if [ -d /sys/firmware/efi/efivars ]; then
            echo " * Installing grub-efi (uefi)..."
            DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-amd64
        else
            echo " * Installing grub-pc (bios)..."
            DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc
        fi
        ;;
    i686)
        echo " * Installing grub-efi-ia32 (uefi 32-bit)..."
        DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-ia32
        ;;
    aarch64)
        echo " * Installing grub-efi-arm64 (uefi arm64)..."
        DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi-arm64
        ;;
    *)
        echo "Unsupported architecture: $ARCH"
        exit 1
        ;;
esac

# Re-enable os-prober:
sed -i "s/#GRUB_DISABLE_OS_PROBER=false/# OS_PROBER re-enabled by Debian Calamares installation:\nGRUB_DISABLE_OS_PROBER=false/g" $CHROOT/etc/default/grub
chroot $CHROOT /usr/sbin/update-grub

