summaryrefslogtreecommitdiff
path: root/cron-jobs/ftpdir-cleanup
diff options
context:
space:
mode:
Diffstat (limited to 'cron-jobs/ftpdir-cleanup')
-rwxr-xr-xcron-jobs/ftpdir-cleanup34
1 files changed, 9 insertions, 25 deletions
diff --git a/cron-jobs/ftpdir-cleanup b/cron-jobs/ftpdir-cleanup
index cb14382..ad2e7f9 100755
--- a/cron-jobs/ftpdir-cleanup
+++ b/cron-jobs/ftpdir-cleanup
@@ -12,9 +12,9 @@ clean_pkg() {
if [ -h "$pkg" ]; then
rm -f "$pkg" "$pkg.sig"
else
- mv -f "$pkg" "$CLEANUP_DESTDIR"
+ mv_acl "$pkg" "$CLEANUP_DESTDIR/${pkg##*/}"
if [ -e "$pkg.sig" ]; then
- mv -f "$pkg.sig" "$CLEANUP_DESTDIR"
+ mv_acl "$pkg.sig" "$CLEANUP_DESTDIR/${pkg##*/}.sig"
fi
touch "${CLEANUP_DESTDIR}/${pkg##*/}"
fi
@@ -22,6 +22,13 @@ clean_pkg() {
fi
}
+script_lock
+
+for repo in "${PKGREPOS[@]}"; do
+ for arch in "${ARCHES[@]}"; do
+ repo_lock ${repo} ${arch} || exit 1
+ done
+done
${CLEANUP_DRYRUN} && warning 'dry run mode is active'
@@ -68,29 +75,6 @@ if [ ${#old_pkgs[@]} -ge 1 ]; then
done
fi
-# cleanup of legacy $repo/os/any directories
-for repo in "${PKGREPOS[@]}"; do
- if [ ! -d "${FTP_BASE}/${repo}/os/any" ]; then
- continue
- fi
- if [ -n "$(find "${FTP_BASE}/${repo}/os/any" -type d -empty)" ]; then
- msg "Removing empty legacy directory ${repo}/os/any"
- ${CLEANUP_DRYRUN} || rmdir "${FTP_BASE}/${repo}/os/any"
- continue
- fi
- find "${FTP_BASE}/${repo}/os/any" -name "*${PKGEXT}" -printf '%f\n' | sort > "${WORKDIR}/any-${repo}"
- cat "${WORKDIR}/db-${repo}-"* | sort -u > "${WORKDIR}/all-${repo}"
-
- old_pkgs=($(comm -23 "${WORKDIR}/any-${repo}" "${WORKDIR}/all-${repo}"))
- if [ ${#old_pkgs[@]} -ge 1 ]; then
- msg "Removing old packages from [${repo}] (any)..."
- for old_pkg in ${old_pkgs[@]}; do
- msg2 "${old_pkg}"
- clean_pkg "${FTP_BASE}/${repo}/os/any/${old_pkg}"
- done
- fi
-done
-
old_pkgs=($(find ${CLEANUP_DESTDIR} -type f -name "*${PKGEXT}" -mtime +${CLEANUP_KEEP} -printf '%f\n'))
if [ ${#old_pkgs[@]} -ge 1 ]; then
msg "Removing old packages from the cleanup directory..."