From 19d15666b8468f54b8837c2ce9cd4dcf5064991a Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sun, 11 Apr 2010 21:07:44 +0200 Subject: add a simple and slow integrity check --- checkrepo | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 checkrepo diff --git a/checkrepo b/checkrepo new file mode 100755 index 0000000..ec8a5e7 --- /dev/null +++ b/checkrepo @@ -0,0 +1,33 @@ +#!/bin/bash + +home="$(dirname "${0}")" +target="${home}/repo" +lock='/tmp/mirrorsync.lck' +tmp="$(mktemp -d)" + +[ -f "${lock}" ] && exit 1 +touch "${lock}" + +grep_dbinfo() { + local _ret + + _ret="$(grep -m 1 -A 1 "%$2%" "$1" | tail -1)" + echo -n "$_ret" +} + +for repo in {core,extra,community,testing,community-testing}; do + for arch in {i686,x86_64}; do + echo "Reading $arch/$repo.db.tar.gz..." + mkdir -p $tmp/$repo/$arch + bsdtar xf $target/$repo/os/$arch/$repo.db.tar.gz -C $tmp/$repo/$arch + for p in $tmp/$repo/$arch/*/desc; do + echo "$(grep_dbinfo $p MD5SUM) $target/$repo/os/$arch/$(grep_dbinfo $p FILENAME)" >> $tmp/md5sums.txt + done + done +done + +echo 'Checking repository...' +md5sum -c --quiet $tmp/md5sums.txt + +rm -rf $tmp +rm -f "${lock}" -- cgit v1.2.3-24-g4f1b