#!/bin/bash # -*- coding: utf-8 -*- source ~/.bashrc source $(dirname $0)/config source $(dirname $0)/local_config source $(dirname $0)/libremessages for repo in ${ARCHREPOS[@]}; do msg "Syncing ${repo}" for arch in ${ARCHARCHES[@]} 'any'; do msg2 "${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 msg2 "Making pending list for $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 $(dirname $0)/clean_repo.py -k ${blacklist} -w ${whitelist} \ -p ${docs_dir}/pending-${repo}.txt \ -b ${repodir}/staging/${repo}/${repo}${DBEXT} \ -d ${repodir}/stagging/${repo} fi done # if some nonfree files got pass the filter this command delete them msg2 "Fallback cleaning repo" $(dirname $0)/clean_repo.py -k ${blacklist} -d ${repodir}/staging/${repo} done msg "Removing leftover files..." find ${repodir}/staging/ -type f \! -name "*${PKGEXT}" -delete # Staging should not have symbolic links find ${repodir}/staging/ -type l -delete $(dirname $0)/db-update #$(dirname $0)/cron-jobs/ftpdir-cleanup