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.
tdebase/kioslave/fish/genfishcode.pl

44 lines
879 B

#!/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};