diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-12-15 15:26:19 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-12-15 15:26:19 +0000 |
commit | f2fbc6350aaf45330b9eb6f4e14fc55739c21cd4 (patch) | |
tree | 1ec8513b84d054634c1f7bd57cb4a5dda540c82e /src/rspamadm | |
parent | 28647a4aa4c16b36a10dd9e02dab84a357c5fa7b (diff) | |
download | rspamd-f2fbc6350aaf45330b9eb6f4e14fc55739c21cd4.tar.gz rspamd-f2fbc6350aaf45330b9eb6f4e14fc55739c21cd4.zip |
Add support of '--.USE' in lua preprocessor
Diffstat (limited to 'src/rspamadm')
-rw-r--r-- | src/rspamadm/lua_preprocess.pl | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/src/rspamadm/lua_preprocess.pl b/src/rspamadm/lua_preprocess.pl index 6384df28c..014db3a98 100644 --- a/src/rspamadm/lua_preprocess.pl +++ b/src/rspamadm/lua_preprocess.pl @@ -6,30 +6,42 @@ use strict; my ($in_dir, $out_dir) = @ARGV; my @files = <$in_dir/*.lua>; +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 $_; + } + } +} + foreach my $file (@files) { - $file =~ /([^\/.]+)(.lua)$/; - my $fname = "$1$2"; - my $varname = "rspamadm_script_$1"; - my $definename = uc $varname; + if ($file =~ /([^\/.]+)(.lua)$/) { + my $fname = "$1$2"; + my $varname = "rspamadm_script_$1"; + my $definename = uc $varname; - open(IN, "< $file") or die "input missing"; - open(OUT, "> $out_dir/$fname.h") or die "output missing"; + open(my $in, '<', $file) or die "input missing"; + open(my $out, '>', "$out_dir/$fname.h") or die "output missing"; - print OUT <<EOD; + print $out <<EOD; #ifndef ${definename}_GUARD_H #define ${definename}_GUARD_H static const char ${varname}\[\] = "" EOD + quote_file($in, $out); - while (<IN>) { - $_ =~ s/^(.*)$/"$1\\n"/; - print OUT $_; - } - print OUT <<EOD; + print $out <<EOD; ""; #endif EOD - close IN; - close OUT; + } } |