summaryrefslogtreecommitdiffstats
path: root/kioslave/fish/genfishcode.pl
diff options
context:
space:
mode:
Diffstat (limited to 'kioslave/fish/genfishcode.pl')
-rwxr-xr-xkioslave/fish/genfishcode.pl43
1 files changed, 43 insertions, 0 deletions
diff --git a/kioslave/fish/genfishcode.pl b/kioslave/fish/genfishcode.pl
new file mode 100755
index 000000000..60dfff8de
--- /dev/null
+++ b/kioslave/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};