new xxclean xbps helper script
This commit is contained in:
37
dot_local/bin/executable_xxclean
Normal file
37
dot_local/bin/executable_xxclean
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/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!"
|
Reference in New Issue
Block a user