Mercurial > ec-dotfiles
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 |