diff options
Diffstat (limited to 'tdeioslave/fish/genfishcode.pl')
-rwxr-xr-x | tdeioslave/fish/genfishcode.pl | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tdeioslave/fish/genfishcode.pl b/tdeioslave/fish/genfishcode.pl new file mode 100755 index 000000000..60dfff8de --- /dev/null +++ b/tdeioslave/fish/genfishcode.pl @@ -0,0 +1,43 @@ +#!/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}; |