37 lines
953 B
Perl
37 lines
953 B
Perl
#!/usr/bin/perl -w
|
|
|
|
# Primitive ad-hoc script for updating pdnsd html doc files.
|
|
# Written by Paul Rombouts.
|
|
|
|
use strict;
|
|
use integer;
|
|
use POSIX qw(strftime);
|
|
|
|
my %paramvals=();
|
|
|
|
while(@ARGV && $ARGV[0]=~/^([^=]*)=(.*)$/) {
|
|
my $param=$1; my $val=$2;
|
|
if($param =~ /^[[:alpha:]]\w*$/) {
|
|
$paramvals{$param}=$val;
|
|
}
|
|
else {warn "Warning: invalid parameter '$param' ignored.\n"}
|
|
shift @ARGV;
|
|
}
|
|
|
|
sub sizeof {
|
|
my($arg)=@_;
|
|
(my $str= $arg) =~ s/\$(?:([[:alpha:]]\w*)\b|\{([[:alpha:]]\w*)\})/
|
|
defined($paramvals{$+})?$paramvals{$+}:defined($ENV{$+})?$ENV{$+}:''/eg;
|
|
my $filename=eval($str);
|
|
(-f $filename) or return '???';
|
|
(((-s $filename)+1023)/1024).'kB';
|
|
}
|
|
|
|
while(<>) {
|
|
s/\$(?:date\b|\{date\})/strftime("%d %b %Y",localtime)/eg;
|
|
s/\$sizeof\(([^()]*)\)/sizeof($1)/eg;
|
|
s/\$(?:([[:alpha:]]\w*)\b|\{([[:alpha:]]\w*)\})/
|
|
defined($paramvals{$+})?$paramvals{$+}:defined($ENV{$+})?$ENV{$+}:''/eg;
|
|
print;
|
|
}
|