summaryrefslogtreecommitdiff
path: root/repo-update
blob: bf8d73c01d923e6f5cb8d328ada59c30e9f5bccf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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