comparison bin/old-cek @ 138:f963d52c031a

Merge.
author Edho Arief <edho@myconan.net>
date Wed, 02 Nov 2011 22:12:16 +0700
parents 5bafb912837e
children
comparison
equal deleted inserted replaced
137:983beb13c736 138:f963d52c031a
1 #!/usr/bin/perl
2
3 use warnings;
4 use strict;
5 use String::CRC32;
6 use File::Basename;
7
8 unless($#ARGV+1>0) {
9 print("Usage: ", basename($0), " file1 ... fileN\n");
10 exit(1);
11 }
12
13 my @files = @ARGV;
14 #or print("Usage: ", basename($0), " file1 ... fileN\n") && exit(1);
15 # print usage message if called without arguments
16
17 foreach (@files) {
18 my $filename = $_;
19 my ($input, $name_checksum, $real_checksum, $checksum);
20 unless((-r $filename) && (-f $filename)) {
21 print(qq("$filename" is not a file or unreadable, skipping\n));
22 next();
23 }
24 #print(qq(Could not find file "$filename", skipping\n)) and next() unless -r $filename;
25 #print(qq("$filename" is not a file, skipping\n)) and next() unless -f $filename;
26
27 open(FILE,$filename);
28 $real_checksum = sprintf("%08X",crc32(*FILE));
29 close(FILE);
30
31 if ( /(\[|\()([0-9A-F]{8})(\]|\))/i ) { # does it have a checksum?
32 $name_checksum = $2;
33 if (lc($real_checksum) eq lc($name_checksum)) {
34 print("${filename}: $real_checksum - OK!\n");
35 next();
36 }
37 else {
38 print("${filename}: $real_checksum - NOT OK! Should be ${name_checksum}!\n");
39 next();
40 }
41 }
42 else { # can't find checksum in filename, just print filename + generated checksum and let the user do the thinking
43 print("${filename}: $real_checksum\n");
44 next();
45 }
46 }
47
48 exit(0);
49