summaryrefslogtreecommitdiffstats
path: root/cron-jobs/ftpdir-cleanup
diff options
context:
space:
mode:
Diffstat (limited to 'cron-jobs/ftpdir-cleanup')
-rwxr-xr-xcron-jobs/ftpdir-cleanup35
1 files changed, 34 insertions, 1 deletions
diff --git a/cron-jobs/ftpdir-cleanup b/cron-jobs/ftpdir-cleanup
index d66138c..1ccc654 100755
--- a/cron-jobs/ftpdir-cleanup
+++ b/cron-jobs/ftpdir-cleanup
@@ -31,7 +31,40 @@ trap ctrl_c 2
/usr/bin/renice +10 -p $$ > /dev/null
for repo in $repos; do
- $(dirname $0)/../misc-scripts/ftpdir-cleanup $repo $CLEANUP_DESTDIR
+ $(dirname $0)/../misc-scripts/ftpdir-cleanup $repo
done
+to_cleanup=""
+for _arch in ${ARCHES[@]}; do
+ poolpath="$FTP_BASE/packages/os/$_arch/"
+ cd $poolpath
+ for pkg in *$PKGEXT; do
+ [ -f "$pkg" ] || continue # in case we get a file named "*.pkg.tar.gz"
+ LINKS="$(/bin/ls $FTP_BASE/*/os/$_arch/$pkg 2>/dev/null)"
+ if [ -n "$LINKS" ]; then
+ found=0
+ for lnk in $LINKS; do
+ if [ -h "$lnk" ]; then
+ found=1
+ break
+ fi
+ done
+ # No links found, clean it up
+ if [ $found -eq 0 ]; then
+ to_cleanup="$to_cleanup $poolpath/$pkg"
+ fi
+ fi
+ done
+done
+
+if [ -n "$to_cleanup" ]; then
+ echo " The following packages are no longer in any repo"
+ echo " They will be moved to $CLEANUP_DESTDIR"
+ for f in $to_cleanup; do
+ echo " $(basename "$f")"
+ done
+ echo ""
+ mv "$f" "$CLEANUP_DESTDIR"
+fi
+
cleanup