#!/bin/sh -x CVSROOT=/home/ncvs SPLIT_ENABLE=0 # only if split is enabled SUMS_BEFORE2K=sums-etc-before2k.list SUMS_AFTER2K=sums-etc-recent.list SUMS_FILE=sums-etc-sorted.list OTHERFILE=etc-other if [ ${SPLIT_ENABLE} -eq 0 ]; then SUMS_BEFORE2K=${SUMS_FILE} SUMS_AFTER2K=${SUMS_FILE} fi # Usage: makesum etcfile rcsfile # Examples: # COPYRIGHT src/COPYRIGHT,v # rc src/etc/rc,v makesum() { etcfile=$1 rcsfile=$2 srcfile=`echo ${rcsfile} | sed 's/,v$//' | sed 's/Attic\///'` rlog ${CVSROOT}/${rcsfile} | \ egrep "^revision [0-9\.]*$" | sort -n | uniq | \ while read j i do egrep "^${etcfile} $i " *.list 2>&1 >/dev/null && continue # cvs will remove file anyway, but just to be safe... rm -f ${srcfile} # cvs aways return success, so don't care about it cvs -Rqd ${CVSROOT} co -r $i ${srcfile} \ 2>&1 > /dev/null if [ -f ${srcfile} ]; then SUMS_FILE=${SUMS_BEFORE2K} # is there some $Id$ after 2k? egrep '\$(FreeBSD|Id): [^ ]* [0-9\.]* 200.*' \ ${srcfile} && \ SUMS_FILE=${SUMS_AFTER2K} 2>&1 >/dev/null md5sum=`md5 ${srcfile} | awk '{print $4}'` echo "${etcfile} $i ${md5sum}" >> ${SUMS_FILE}.tmp fi done } cat ${OTHERFILE} | \ while read otherlist do makesum $otherlist done (cd ${CVSROOT} && find src/etc -type f) | sort | \ while read rcsfile do etcfile=`echo ${rcsfile} | sed 's/src\/etc\///'| \ sed 's/,v$//' | sed 's/Attic\///'` makesum $etcfile $rcsfile done for tempfile in *.tmp; do sumsfile=`basename ${tempfile} .tmp` mv ${sumsfile} ${sumsfile}.old cat ${tempfile} ${sumsfile}.old | sort -n | uniq > ${sumsfile} rm -f ${tempfile} done