#!/bin/sh

set -e

# Get current git branch
branch=$(git rev-parse --abbrev-ref HEAD)

# Construct path
binpkgs_dir="$XBPS_DISTDIR/hostdir/binpkgs/${branch}"

# Check if directory exists
if [ ! -d "$binpkgs_dir" ]; then
    echo "Error: Directory '$binpkgs_dir' does not exist"
    exit 1
fi

echo "Cleaning old packages in: $binpkgs_dir"
echo "Current branch: $branch"
echo

# Get unique package names (strip version info)
for pkg in $(find "$binpkgs_dir" -maxdepth 1 -name '*.xbps' -type f -printf '%f\n' | sed 's/-[0-9].*//' | sort -u); do
  # Find all versions of this package, sorted by modification time (newest first)
  # Keep only the first (newest), remove the rest
  find "$binpkgs_dir" -maxdepth 1 -name "${pkg}-*.xbps" -type f -printf '%T@ %p\n' | \
  sort -rn | \
  tail -n +2 | \
  cut -d' ' -f2- | \
  while read -r old_pkg; do
    echo "Removing: $(basename "$old_pkg")"
    rm -f "$old_pkg"
  done
done

xbps-rindex -c "$binpkgs_dir"

echo "Done!"
