Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports-kde
Path: blob/main/Tools/scripts/checksum.sh
16460 views
1
#!/bin/sh
2
#
3
# Created by: Alexander Langer <[email protected]>
4
# Created on: May 22, 2000
5
# MAINTAINER= [email protected]
6
7
if [ -z $1 ]; then
8
echo "Usage: $0 <portname> ..."
9
exit 1
10
fi
11
12
if [ -z $TMPDIR ]; then
13
TMPDIR=/tmp
14
fi
15
if [ -z $PORTSDIR ]; then
16
PORTSDIR=/usr/ports
17
fi
18
19
while [ ! -z $1 ]; do
20
echo "Processing for $1..."
21
22
cd $PORTSDIR
23
DIR=`grep $1 INDEX| cut -f2 -d\|`
24
cd $DIR
25
26
make fetch
27
broken=`make checksum 2>&1 | grep "Checksum mismatch for" | \
28
awk '{print $5}' | sed -e 's:\.$::'`
29
30
if [ -z $broken ]; then
31
make checksum
32
shift
33
continue
34
fi
35
36
rm -rf $TMPDIR/checksum
37
mkdir $TMPDIR/checksum
38
cd $TMPDIR/checksum
39
mkdir $TMPDIR/checksum/orig
40
mkdir $TMPDIR/checksum/new
41
42
echo Fetching $broken
43
fetch ftp://ftp.FreeBSD.ORG/pub/FreeBSD/distfiles/$broken
44
45
if [ ! -r $broken ]; then
46
echo "File $broken not found, fetch error?"
47
exit 1
48
fi
49
50
if file $broken | grep "gzip compressed data" >/dev/null; then
51
cd orig
52
tar -zxf ../$broken || gunzip -c ../$broken > ${broken%.gz}
53
cd ../new
54
tar -zxf $PORTSDIR/distfiles/$broken || \
55
gunzip -c $PORTSDIR/distfiles/$broken > ${broken%.gz}
56
cd ..
57
elif file $broken | grep "compress'd data 16 bits" >/dev/null; then
58
cd orig
59
tar -zxf ../$broken
60
cd ../new
61
tar -zxf $PORTSDIR/distfiles/$broken
62
cd ..
63
elif file $broken | grep "zip archive file" >/dev/null; then
64
cd orig
65
unzip ../$broken
66
cd ../new
67
unzip $PORTSDIR/distfiles/$broken
68
cd ..
69
elif file $broken | grep "bzip compressed data" >/dev/null; then
70
cd orig
71
tar -yxf ../$broken
72
cd ../new
73
tar -yxf $PORTSDIR/distfiles/$broken
74
cd ..
75
else
76
cp $broken orig/
77
cp $PORTSDIR/distfiles/$broken new/
78
fi
79
80
echo Diff follows:
81
diff -rNu orig new
82
83
shift
84
done
85
86