#!/bin/bash # -*- coding: utf-8 -*- source $(dirname $0)/config source $(dirname $0)/local_config source $(dirname $0)/libremessages for repo in ${ARCHREPOS[@]}; do for arch in ${ARCHARCHES[@]} 'any'; do msg "Syncing ${repo} ${arch}" # makes a file containing rsync output for filter.py ${rsync_list_command} \ rsync://${mirror}/${mirrorpath}/${repo}/os/${arch}/ \ ${repodir}/staging/${repo}/ > ${rsout_file} # reads blacklist and rsout_file and makes an rsync exclude-from # list filter.py -r ${rsync_blacklist} -k ${blacklist} \ -f ${rsout_file} # list files in ${repodir}/${repo} and write their names on # rsync_not_needed for using as an rsync exclude-from find ${repodir}/${repo} -name "*${PKGEXT}" \ -fprintf ${rsync_not_needed} '%f\n' # Actual rsync command ${rsync_update_command} \ --exclude-from=${rsync_blacklist} \ --exclude-from=${rsync_not_needed} \ rsync://${mirror}/${mirrorpath}/${repo}/os/${arch}/ \ ${repodir}/staging/${repo}/ done for arch in ${ARCHARCHES[@]}; do msg "Cleaning $repo $arch" # if there is a db in repo (db is created on rsync) if [ -r ${repodir}/staging/${repo}/os/${arch}/${repo}${DBEXT} ]; then # clean_repo makes pending list with files on db and remove # packages from db clean_repo.py -k ${blacklist} -w ${whitelist} \ -p ${docs_dir}/pending-${repo}.txt \ -b ${repodir}/staging/${repo}/${repo}${DBEXT} fi done # if some nonfree files got pass the filter this command delete them msg "Fallback cleaning repo" python clean_repo.py -k ${blacklist} -d ${repodir}/staging/${repo} done msg "Removing leftover files..." find ${repodir}/staging/ \! -name "*${PKGEXT}*" -delete db-update $(dirname $0)/cron-jobs/ftpdir-cleanup