diff options
-rwxr-xr-x | clean_repo.py | 6 | ||||
-rw-r--r-- | config | 3 | ||||
-rwxr-xr-x | repo-update | 33 |
3 files changed, 26 insertions, 16 deletions
diff --git a/clean_repo.py b/clean_repo.py index bc401b5..6f3d632 100755 --- a/clean_repo.py +++ b/clean_repo.py @@ -80,11 +80,9 @@ if __name__ == "__main__": args=parser.parse_args() - if not args.directory and not args.database: - parser.print_help() - elif not args.pending_file or not args.whitelist_file \ - and args.database: + if args.database and not (args.pending_file and args.whitelist_file): parser.print_help() + exit(1) blacklisted=listado(args.blacklist_file) @@ -1,7 +1,8 @@ FTP_BASE="/home/parabolavnx/parabolagnulinux.org/free" ARCH_BASE="/home/parabolavnx/parabolagnulinux.org/repo" SVNREPO="/home/parabolavnx/parabolagnulinux.org/abslibre" -PKGREPOS=('core' 'extra' 'community' 'libre' 'libre-testing' 'social' 'sugar' 'testing' 'multilib') +ARCHREPOS=('core' 'extra' 'community' 'testing' 'multilib') +PKGREPOS=(${ARCHREPOS[@]} 'libre' 'libre-testing' 'social' 'sugar') PKGPOOL='pool/packages' SRCPOOL='sources/packages' diff --git a/repo-update b/repo-update index 2354e0a..7241507 100755 --- a/repo-update +++ b/repo-update @@ -5,29 +5,40 @@ source config source local_config source libremessages -for repo in ${PKGREPOS[@]}; do - for arch in ${ARCHES[@]} 'any'; do +for repo in ${ARCHREPOS[@]}; do + for arch in 'i686' 'x86_64' 'any'; do msg "Syncing ${repo} ${arch}" + # makes a file containing rsync output for filter.py ${rsync_list_command} \ - ${mirror}::${mirrorpath}/${repo}/os/${arch}/ \ - ${repodir}/${repo}/ > ${rsout_file} + 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} - find ${repodir}/${repo} -name *${PKGEXT} \ - -fprint ${rsync_not_needed} + # 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} - ${mirror}::${mirrorpath}/${repo}/os/${arch}/ \ - ${repodir}/${repo}/ + --exclude-from=${rsync_not_needed} \ + rsync://${mirror}/${mirrorpath}/${repo}/os/${arch}/ \ + ${repodir}/staging/${repo}/ done for arch in ${ARCHES[@]}; do + msg2 "Cleaning" + # if there is a db in repo (db is created on rsync) if [ -r ${repodir}/${repo}/os/${arch}/${repo}${DBEXT} ]; then + # clean_repo makes pending list with files on db and remove + # packages from db clean_repo.py -k ${blacklist} -w ${whitelist} \ -p ${docs_dir}/pending-${repo} \ - -b ${repodir}/${repo}/${repo}${DBEXT} + -b ${repodir}/staging/${repo}/${repo}${DBEXT} fi - python clean_repo.py -k ${blacklist} -d ${repodir}/${repo} + # if some nonfree files got pass the filter this command delete them + python clean_repo.py -k ${blacklist} -d ${repodir}/staging/${repo} done done |