1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/bin/bash
- ## Update Packages.bz2 and Sources.bz2 to include all meta-data from last 7 days
- ## Only collects data from the unstable distribution.
- ##
- ## Must aggregate current last 7 days before updating meta-data for today,
- ## otherwise the Packages meta-data will be one day ahead of the Sha1Sums archive
- dest="/srv/http/htdocs/apt-sec/mirror"
- mirrors="/srv/apt-mirror/mirror/"
- echo "Updating Package and Sources lists.."
- if [ "A$1" = "Ainit" ]; then
- find $dest -name 'Packages.bz2-[0-9]' -delete
- find $dest -name 'Sources.bz2-[0-9]' -delete
- fi
- ## Collect meta-data of last 7 days
- ##
- # collect Packages
- for i in $dest/Packages.bz2-*; do
- bzcat $i
- done > $dest/Packages
- # collect Sources
- for i in $dest/Sources.bz2-*; do
- bzcat $i
- done > $dest/Sources
- # compress for download
- bzip2 -f $dest/Packages
- bzip2 -f $dest/Sources
- # Get today's files from archive and save data for the upcoming week
- #
- tmp=$(mktemp)
- find $mirrors -name Packages.bz2 > $tmp
- sed -i s/'\/srv\/apt-mirror\/mirror\/'// $tmp
- sed -i s/'binary-amd64\/Packages.bz2'/'source\/Sources.bz2'/ $tmp
- sed -i s/^/'http:\/\/'/ $tmp
- wget -qP $mirrors -ri $tmp
- rm $tmp
- # Do some filtering to reduce memory requirements
- # TODO: We should parse this cruft here and simply provide SQL for apt-sec!
- #for i in $(find $mirrors -name Packages.bz2 |grep "/sid/"); do
- for i in $(find $mirrors -name Packages.bz2); do
- bzcat $i
- done |grep "^$\|^Package:\|^Provides:\|^Tag:\|^Filename:" \
- |bzip2 > $dest/Packages.bz2-$(date +%w)
- #for i in $(find $mirrors -name Sources.bz2 |grep "/sid\/"); do
- for i in $(find $mirrors -name Sources.bz2); do
- bzcat $i
- done |grep "^$\|^Package:\|^Binary:\|^ \|^Version\|^Maintainer:" \
- |grep -E -v '^\ [a-z,A-Z,0-9]{64}\ [0-9]+\ ' \
- |grep -E -v '^\ [a-z,A-Z,0-9]{32}\ [0-9]+\ ' \
- |grep -E -v '^\ [a-z,A-Z,0-9]{40}\ [0-9]+\ ' \
- |bzip2 > $dest/Sources.bz2-$(date +%w)
|