#!/bin/bash

DB="./acreetionOSREPO.db.tar.gz"

echo "Reading database..."
EXISTING=$(bsdtar -xOf "$DB" --include="*/desc" 2>/dev/null \
  | awk '/%FILENAME%/{getline; print}')

PKGS=(*.pkg.tar.zst)
TOTAL=${#PKGS[@]}
NEW_PKGS=()
COUNT=0

echo "Scanning $TOTAL packages..."

for pkg in "${PKGS[@]}"; do
    [[ -f "$pkg" ]] || continue
    COUNT=$((COUNT + 1))

    # Progress bar
    PCT=$((COUNT * 100 / TOTAL))
    FILLED=$((PCT / 2))
    BAR=$(printf "%${FILLED}s" | tr ' ' '#')
    EMPTY=$(printf "%$((50 - FILLED))s")
    printf "\r[%s%s] %d%% (%d/%d) %-40s" "$BAR" "$EMPTY" "$PCT" "$COUNT" "$TOTAL" "$pkg"

    grep -qF "$pkg" <<< "$EXISTING" || NEW_PKGS+=("$pkg")
done

echo ""  # newline after bar

if [[ ${#NEW_PKGS[@]} -eq 0 ]]; then
    echo "Nothing to add — db is up to date."
    exit 0
fi

echo "Adding ${#NEW_PKGS[@]} new/updated package(s) to db..."
sudo repo-add "$DB" "${NEW_PKGS[@]}"
echo "Done!"
