summaryrefslogtreecommitdiff
path: root/repo-update
diff options
context:
space:
mode:
Diffstat (limited to 'repo-update')
-rwxr-xr-xrepo-update59
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
+