2015-12-15 15:36:12 +01:00
|
|
|
#!/usr/bin/env perl
|
|
|
|
|
|
|
|
use warnings FATAL => 'all';
|
|
|
|
use strict;
|
|
|
|
|
|
|
|
my ($in_dir, $out_dir) = @ARGV;
|
|
|
|
my @files = <$in_dir/*.lua>;
|
|
|
|
|
2015-12-15 16:26:19 +01:00
|
|
|
sub quote_file {
|
|
|
|
my ($in, $out) = @_;
|
|
|
|
|
|
|
|
while (<$in>) {
|
|
|
|
if (/^--.USE\s*"(\S+)"$/) {
|
|
|
|
open(my $inc, '<', "$in_dir/$1.lua.in") or die "missing include $1";
|
|
|
|
quote_file($inc, $out);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
s/\"/\\"/g;
|
|
|
|
s/^(.*)$/"$1\\n"/;
|
|
|
|
print $out $_;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-12-15 15:36:12 +01:00
|
|
|
foreach my $file (@files) {
|
2015-12-15 16:26:19 +01:00
|
|
|
if ($file =~ /([^\/.]+)(.lua)$/) {
|
|
|
|
my $fname = "$1$2";
|
|
|
|
my $varname = "rspamadm_script_$1";
|
|
|
|
my $definename = uc $varname;
|
2015-12-15 15:36:12 +01:00
|
|
|
|
2015-12-15 16:26:19 +01:00
|
|
|
open(my $in, '<', $file) or die "input missing";
|
|
|
|
open(my $out, '>', "$out_dir/$fname.h") or die "output missing";
|
2015-12-15 15:36:12 +01:00
|
|
|
|
2015-12-15 16:26:19 +01:00
|
|
|
print $out <<EOD;
|
2015-12-15 15:36:12 +01:00
|
|
|
#ifndef ${definename}_GUARD_H
|
|
|
|
#define ${definename}_GUARD_H
|
|
|
|
|
|
|
|
static const char ${varname}\[\] = ""
|
|
|
|
EOD
|
2015-12-15 16:26:19 +01:00
|
|
|
quote_file($in, $out);
|
2015-12-15 15:36:12 +01:00
|
|
|
|
2015-12-15 16:26:19 +01:00
|
|
|
print $out <<EOD;
|
2015-12-15 15:36:12 +01:00
|
|
|
"";
|
|
|
|
#endif
|
|
|
|
EOD
|
2015-12-15 16:26:19 +01:00
|
|
|
}
|
2015-12-15 15:36:12 +01:00
|
|
|
}
|