diff options
Diffstat (limited to 'repo-update')
-rwxr-xr-x | repo-update | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/repo-update b/repo-update new file mode 100755 index 0000000..12c6d0c --- /dev/null +++ b/repo-update @@ -0,0 +1,68 @@ +#!/bin/bash +# -*- coding: utf-8 -*- +source ~/.bashrc +source $(dirname $0)/config +source $(dirname $0)/local_config +source $(dirname $0)/libremessages + +msg "Updating your-freedom" +$(dirname $0)/yf-update + +msg "Global exclude-list" +# To not downgrade repos by accident +find ${repodir}/old/packages -name "*${PKGEXT}" \ + -fprintf ${rsync_not_needed}2 '%f\n' + +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 + plain "Checking packages..." + ${rsync_list_command} \ + rsync://${mirror}/${mirrorpath}/${repo}/os/${arch}/ \ + ${repodir}/staging/${repo}/ > ${rsout_file} 2&>/dev/null + # reads blacklist and rsout_file and makes an rsync exclude-from + # list + plain "Excluding nonfree..." + 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 + plain "Excluding our packages" + find ${repodir}/${repo} -name "*${PKGEXT}" \ + -fprintf ${rsync_not_needed} '%f\n' + # Actual rsync command + plain "Syncing..." + ${rsync_update_command} \ + --exclude-from=${rsync_blacklist} \ + --exclude-from=${rsync_not_needed} \ + --exclude-from=${rsync_not_needed}2 \ + rsync://${mirror}/${mirrorpath}/${repo}/os/${arch}/ \ + ${repodir}/staging/${repo}/ 2&>/dev/null + 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 + |