Mercurial > ec-dotfiles
diff bin/cek.pl @ 124:5bafb912837e
Massive addition of old scripts collection.
author | Edho Prima Arief <edho@myconan.net> |
---|---|
date | Wed, 26 Oct 2011 15:22:00 +0700 |
parents | |
children | 1a996b35eaab |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/cek.pl Wed Oct 26 15:22:00 2011 +0700 @@ -0,0 +1,49 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use String::CRC32; +use File::Basename; + +my @files = @ARGV or print("Usage: ",basename($0)," file1 file2 ... fileN\n") && exit(1); +my $num_ok=0; +my $num_err=0; +my $num_nf=0; +my $num_na=@files; + +foreach(@files) { + my $filename = $_; + my ($name_crc,$real_crc); + unless (-f $filename) { + $num_nf++;$num_na--; + print(qq(Could not find "$filename", skipping\n)); + next(); + } + if(/(\[|\()([0-9A-F]{8})(\]|\))/i){ + $name_crc=uc($2); + } + open(FILE,"<",$filename); + binmode(FILE); + $real_crc=sprintf("%08X",crc32(*FILE)); + close(FILE); + if($name_crc) { + $num_na--; + if($name_crc eq $real_crc) { + $num_ok++; + print("$filename: OK - $real_crc\n"); + } else { + $num_err++; + print("$filename: NOT OK - $real_crc, should be $name_crc\n"); + } + } else { + print("$filename: $real_crc\n"); + } +} + +printf("%s\n","-"x40); +if($num_ok > 0) { print("Files OK: $num_ok\n"); } +if($num_err > 0) { print("Files error: $num_err\n"); } +if($num_nf > 0) { print("Files not found: $num_nf\n"); } +if($num_na > 0) { print("Files without crc information: $num_na\n"); } + +exit(0);