Mercurial > ec-dotfiles
view bin/cek.pl @ 453:c3bfb45757e9
FreeBSD grep is GNU grep. Well, up to 9.x.
author | Edho Arief <edho@myconan.net> |
---|---|
date | Fri, 15 Feb 2013 18:18:18 +0900 |
parents | 5bafb912837e |
children | 1a996b35eaab |
line wrap: on
line source
#!/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);