You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
879 B
44 lines
879 B
14 years ago
|
#!/usr/bin/perl
|
||
|
use strict;
|
||
|
use warnings;
|
||
|
|
||
|
use Digest::MD5;
|
||
|
|
||
|
sub md5sum {
|
||
|
my $filename = shift;
|
||
|
my $digest;
|
||
|
eval {
|
||
|
open( my $FILE, '<', $filename )
|
||
|
or die "Can't find file $filename\n";
|
||
|
my $ctx = Digest::MD5->new;
|
||
|
$ctx->addfile($FILE);
|
||
|
$digest = $ctx->hexdigest;
|
||
|
close($FILE);
|
||
|
};
|
||
|
if ($@) {
|
||
|
warn $@;
|
||
|
}
|
||
|
return $digest;
|
||
|
}
|
||
|
|
||
|
my $file = $ARGV[0] or die "Missing filename argument";
|
||
|
|
||
|
my $fish_md5 = md5sum($file)
|
||
|
or die "Couldn't compute MD5 for some reason\n";
|
||
|
print qq{#define CHECKSUM "$fish_md5"\n};
|
||
|
print qq{static const char *fishCode(\n};
|
||
|
|
||
|
open( my $FISH, "<", "$file" ) or die "Can't open $file\n";
|
||
|
while (<$FISH>) {
|
||
|
chomp;
|
||
|
s|\\|\\\\|g;
|
||
|
s|"|\\"|g;
|
||
|
s/^\s*/"/;
|
||
|
next if /^"# /;
|
||
|
s/\s*$/\\n"/;
|
||
|
next if /^"\\n"$/;
|
||
|
print "$_\n";
|
||
|
}
|
||
|
close($FISH);
|
||
|
print qq{);\n};
|