Files
dotfiles/dot_local/bin/executable_xxclean
T
2026-09-16 09:06:20 -04:00

37 lines
935 B
Bash

#!/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 version (newest first)
# Keep only the first (newest), remove the rest
find "$binpkgs_dir" -maxdepth 1 -name "${pkg}-[0-9]*.xbps" -type f -printf '%p\n' | \
sort -rV | \
tail -n +2 | \
while read -r old_pkg; do
echo "Removing: $(basename "$old_pkg")"
rm -f "$old_pkg"
done
done
xbps-rindex -c "$binpkgs_dir"
echo "Done!"