Mercurial > ec-dotfiles
diff bin/old-cek @ 138:f963d52c031a
Merge.
author | Edho Arief <edho@myconan.net> |
---|---|
date | Wed, 02 Nov 2011 22:12:16 +0700 |
parents | 5bafb912837e |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/old-cek Wed Nov 02 22:12:16 2011 +0700 @@ -0,0 +1,49 @@ +#!/usr/bin/perl + +use warnings; +use strict; +use String::CRC32; +use File::Basename; + +unless($#ARGV+1>0) { + print("Usage: ", basename($0), " file1 ... fileN\n"); + exit(1); +} + +my @files = @ARGV; +#or print("Usage: ", basename($0), " file1 ... fileN\n") && exit(1); + # print usage message if called without arguments + +foreach (@files) { + my $filename = $_; + my ($input, $name_checksum, $real_checksum, $checksum); + unless((-r $filename) && (-f $filename)) { + print(qq("$filename" is not a file or unreadable, skipping\n)); + next(); + } + #print(qq(Could not find file "$filename", skipping\n)) and next() unless -r $filename; + #print(qq("$filename" is not a file, skipping\n)) and next() unless -f $filename; + + open(FILE,$filename); + $real_checksum = sprintf("%08X",crc32(*FILE)); + close(FILE); + + if ( /(\[|\()([0-9A-F]{8})(\]|\))/i ) { # does it have a checksum? + $name_checksum = $2; + if (lc($real_checksum) eq lc($name_checksum)) { + print("${filename}: $real_checksum - OK!\n"); + next(); + } + else { + print("${filename}: $real_checksum - NOT OK! Should be ${name_checksum}!\n"); + next(); + } + } + else { # can't find checksum in filename, just print filename + generated checksum and let the user do the thinking + print("${filename}: $real_checksum\n"); + next(); + } +} + +exit(0); +