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);