diff options
Diffstat (limited to 'repo-update')
-rwxr-xr-x | repo-update | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/repo-update b/repo-update new file mode 100755 index 0000000..bf8d73c --- /dev/null +++ b/repo-update @@ -0,0 +1,59 @@ +#!/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[@]}; 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}/os/${arch}/ > ${rsout_file}-${repo}-${arch} || exit 1 + # reads blacklist and rsout_file and makes an rsync exclude-from + # list + filter.py -r ${rsync_blacklist} -k ${blacklist} \ + -f ${rsout_file}-${repo}-${arch} || exit 1 + # list files in ${repodir}/${repo} and write their names on + # rsync_not_needed for using as an rsync exclude-from + #find ${repodir}/${repo}/os/${arch}/ -name "*${PKGEXT}" \ + # -fprintf ${rsync_not_needed}-${repo}-${arch} '%f\n' || exit 1 + #find ${repodir}/${PKGPOOL}/ -name "*${PKGEXT}" \ + find ${repodir}/${repo}/os/${arch}/ -name "*${PKGEXT}" \ + -fprintf ${rsync_not_needed}-${repo}-${arch} '%f\n' || exit 1 + # Actual rsync command + ${rsync_update_command} \ + --exclude-from=${rsync_blacklist} \ + --exclude-from=${rsync_not_needed}-${repo}-${arch} \ + rsync://${mirror}/${mirrorpath}/${repo}/os/${arch}/ \ + ${repodir}/staging/${repo}/ || exit 1 + 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} || exit 1 +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)/db-check-nonfree + |