diff options
Diffstat (limited to 'repo-update')
-rwxr-xr-x | repo-update | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/repo-update b/repo-update new file mode 100755 index 0000000..a44ae87 --- /dev/null +++ b/repo-update @@ -0,0 +1,55 @@ +#!/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)/db-check-nonfree + |