#!/bin/bash
# $1 Update garuda-hotfixes

set -e
shopt -s extglob

# Systemd replaces - with /, See %i man page entry for systemd.unit
if [ "$1" == "keyring/hotfixes" ]; then
    packages="archlinux-keyring chaotic-keyring garuda-hotfixes"
elif [ "$1" == "keyring" ]; then
    packages="archlinux-keyring chaotic-keyring"
fi

if [ -z "$packages" ]; then
    exit 1
fi

tmpdir="$(mktemp -d garuda-system-maintenance-XXXXXXX --tmpdir)"
trap 'rm -rf -- "$tmpdir"' EXIT

mkdir -p "$tmpdir"/{db,cache}
pacman -b "$tmpdir"/db --cachedir "$tmpdir"/cache --noconfirm -Sywdd $packages
pushd "$tmpdir"/cache
time=0
while [ -e "/var/lib/pacman/db.lck" ];
do
    time=$((time+1))
    # Try for 5 minutes
    if (( time > 30 )); then
        exit 1
    fi
    echo Waiting for db.lck $time
    sleep 10
done
SKIP_AUTOSNAP=1 pacman -Udd --noconfirm --needed !(*.sig)
popd
