diff options
Diffstat (limited to 'extra/coadde/cron-jobs/ftpdir-cleanup')
-rwxr-xr-x | extra/coadde/cron-jobs/ftpdir-cleanup | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/extra/coadde/cron-jobs/ftpdir-cleanup b/extra/coadde/cron-jobs/ftpdir-cleanup deleted file mode 100755 index 4a2b418..0000000 --- a/extra/coadde/cron-jobs/ftpdir-cleanup +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/bash - -. "$(dirname "$(readlink -e "$0")")/../config" -. "$(dirname "$(readlink -e "$0")")/../db-functions" - -clean_pkg() { - local pkg - local target - - if ! "${CLEANUP_DRYRUN}"; then - for pkg in "$@"; do - if [ -h "$pkg" ]; then - rm -f "$pkg" "$pkg.sig" - else - mv_acl "$pkg" "$CLEANUP_DESTDIR/${pkg##*/}" - if [ -e "$pkg.sig" ]; then - mv_acl "$pkg.sig" "$CLEANUP_DESTDIR/${pkg##*/}.sig" - fi - touch "${CLEANUP_DESTDIR}/${pkg##*/}" - fi - done - fi -} - -"${CLEANUP_DRYRUN}" && warning 'dry run mode is active' - -for repo in "${PKGREPOS[@]}"; do - for arch in "${ARCHES[@]}"; do - if [ ! -f "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}" ]; then - continue - fi - # get a list of actual available package files - find "${FTP_BASE}/${repo}/os/${arch}" -xtype f -name "*${PKGEXT}" -printf '%f\n' | sort > "${WORKDIR}/repo-${repo}-${arch}" - # get a list of package files defined in the repo db - bsdtar -xOf "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}" | awk '/^%FILENAME%/{getline;print}' | sort > "${WORKDIR}/db-${repo}-${arch}" - - missing_pkgs=($(comm -13 "${WORKDIR}/repo-${repo}-${arch}" "${WORKDIR}/db-${repo}-${arch}")) - if [ ${#missing_pkgs[@]} -ge 1 ]; then - error "Missing packages in [%s] (%s)..." "${repo}" "${arch}" - for missing_pkg in "${missing_pkgs[@]}"; do - msg2 '%s' "${missing_pkg}" - done - fi - - old_pkgs=($(comm -23 "${WORKDIR}/repo-${repo}-${arch}" "${WORKDIR}/db-${repo}-${arch}")) - if [ ${#old_pkgs[@]} -ge 1 ]; then - msg "Removing old packages from [%s] (%s)..." "${repo}" "${arch}" - for old_pkg in "${old_pkgs[@]}"; do - msg2 '%s' "${old_pkg}" - clean_pkg "${FTP_BASE}/${repo}/os/${arch}/${old_pkg}" - done - fi - done -done - -# get a list of all available packages in the pacakge pool -find "$FTP_BASE/${PKGPOOL}" -name "*${PKGEXT}" -printf '%f\n' | sort > "${WORKDIR}/pool" -# create a list of packages in our db -cat "${WORKDIR}/db-"* | sort -u > "${WORKDIR}/db" - -old_pkgs=($(comm -23 "${WORKDIR}/pool" "${WORKDIR}/db")) -if [ ${#old_pkgs[@]} -ge 1 ]; then - msg "Removing old packages from package pool..." - for old_pkg in "${old_pkgs[@]}"; do - msg2 '%s' "${old_pkg}" - clean_pkg "$FTP_BASE/${PKGPOOL}/${old_pkg}" - done -fi - -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..." - for old_pkg in "${old_pkgs[@]}"; do - msg2 '%s' "${old_pkg}" - if ! "${CLEANUP_DRYRUN}"; then - rm -f "${CLEANUP_DESTDIR}/${old_pkg}" - rm -f "${CLEANUP_DESTDIR}/${old_pkg}.sig" - fi - done -fi - -for repo in "${PKGREPOS[@]}"; do - for arch in "${ARCHES[@]}"; do - repo_unlock "${repo}" "${arch}" - done -done - -script_unlock |