openbsd-ports/infrastructure/fetch/check-distfiles
2003-02-25 11:36:55 +00:00

61 lines
2.1 KiB
Bash
Executable File

#!/bin/sh
#
# $OpenBSD: check-distfiles,v 1.4 2003/02/25 11:36:55 espie Exp $
#
# Copyright (c) 1999 Marc Espie.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBSD
# PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PATH=/bin:/usr/bin
export PATH
# This script does a full-scale check of everything that lives under
# /usr/ports/distfiles
PORTS=/usr/ports
ALLSUMS=`mktemp /tmp/checksums.XXXXXX` || exit 1
GREP_RESULT=`mktemp /tmp/grep.XXXXXX` || exit 1
# assume that INDEX is up-to-date
touch $ALLSUMS
cut -d\| -f2 <$PORTS/INDEX|while read i
do
if [ -f $i/distinfo ]
then
cat $i/distinfo >>$ALLSUMS
else
echo "Port $i does not seem to have a checksum file"
fi
done
cd $PORTS/distfiles
find . -type f|sed -e 's|^\./||'|while read name
do
if grep "^SHA1 ($name) = " $ALLSUMS >$GREP_RESULT
then
sha1 $name >>$GREP_RESULT
uniq -u <$GREP_RESULT
else
echo "no checksum recorded for $name"
fi
done
rm $ALLSUMS $GREP_RESULT