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