#!/bin/sh

CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
KNOWN_MEDIUM_PATHS="/run/live/medium /run/initramfs/live"
RELEASE="trixie"

# Support both dracut and initramfs configurations to avoid substitutions
# in live-build, see: #1089618
for path in $KNOWN_MEDIUM_PATHS; do
    if [ "$(mount | grep $path | cut -f3 -d" ")" = "$path" ]; then
        MEDIUM_PATH=$path
    fi
done

# -l: add the media repo to the LIVE system (show phase, before update-check)
if [ "$1" = "-l" ]; then
    if [ -z "$MEDIUM_PATH" ] || [ ! -d "$MEDIUM_PATH/repo" ]; then
        echo "sources-media-live: no repo found on media, skipping."
        exit 0
    fi
    echo "deb [trusted=yes] file:$MEDIUM_PATH/repo ./" \
        > /etc/apt/sources.list.d/vesperos-live-media.list
    apt-get update -q || true
    exit 0
fi

# -u: unmount media from chroot (exec phase cleanup)
if [ "$1" = "-u" ]; then
    umount $CHROOT/$MEDIUM_PATH/repo 2>/dev/null || true
    rm -f $CHROOT/etc/apt/sources.list.d/vesperos-live-media.list
    if ping -c 1 -W 5 deb.debian.org >/dev/null 2>&1; then
        chroot $CHROOT apt-get update -q
    fi
    exit 0
fi

# No repo on media — nothing to do
if [ ! -d "$MEDIUM_PATH/repo" ]; then
    echo "sources-media: no repo found on media, skipping."
    exit 0
fi

# Remove the base sources, we will configure sources in a later phase
rm -f $CHROOT/etc/apt/sources.list.d/base.list

mkdir -p $CHROOT/$MEDIUM_PATH/repo
mount --bind $MEDIUM_PATH/repo $CHROOT/$MEDIUM_PATH/repo
echo "deb [trusted=yes] file:$MEDIUM_PATH/repo ./" > $CHROOT/etc/apt/sources.list.d/vesperos-live-media.list
chroot $CHROOT apt-get update -q

exit 0
