File: imagesums

package info (click to toggle)
debian-cd 3.1.13
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 3,244 kB
  • sloc: sh: 4,925; perl: 3,730; makefile: 387
file content (70 lines) | stat: -rwxr-xr-x 1,340 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash

VERBOSE=0

if [ "$1" = "-v" ] ; then
    VERBOSE=1
    shift
fi

cd $1

if [ "$2"x != ""x ] ; then
    EXT="$2"
fi

if [ "$CHECKSUMS"x = ""x ] ; then
    CHECKSUMS="sha1 md5 sha512 sha256"
fi

for SUM in $CHECKSUMS; do
	UPSUM=`echo $SUM | tr 'a-z' 'A-Z'`
	FILE=$UPSUM"SUMS"$EXT
	if [ $VERBOSE -eq 1 ] ; then
	    echo "Clearing $PWD/$FILE"
	fi
	:> $FILE
done

# 2 calls to find here to get the ordering right - we *really* want to
# get the jigdo files first
for file in `find * -name \*.jigdo` `find * -name \*.iso`; do
    case $file in
        *.jigdo)
            iso=${file%%.jigdo}.iso
            JIGDO=1
            ;;
        *.iso)
            iso=$file
            JIGDO=0
            ;;
        *)
            echo "Found unexpected file $file!"
            exit 1
            ;;
    esac

	for SUM in $CHECKSUMS; do
		UPSUM=`echo $SUM | tr 'a-z' 'A-Z'`
		FILE=$UPSUM"SUMS"$EXT
		CMD="$SUM"sum

		grep -q $iso $FILE
		if [ $? -ne 0 ] ; then
			CKSUM=""
			if [ "$JIGDO" == 1 ] ; then
				CKSUM=`zcat -f $file | grep -i "Image Hex $CMD" | \
                       awk '{print $5}'`
			fi
			if [ "$CKSUM"x != ""x ] ; then
				echo "$CKSUM  $iso" >> $FILE
				grep $iso $FILE
			else
				echo "No Jigdo help for $SUM, doing it the long way with $CMD"
				$CMD $iso >> $FILE
				grep $iso $FILE
			fi
		fi

	done
done