Mercurial > ec-dotfiles
view bin/cek.pl @ 606:b9672858e2e2
Better color
author | nanaya <me@nanaya.pro> |
---|---|
date | Tue, 20 Jun 2017 01:25:03 +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);