File: htmlsubst.pl

package info (click to toggle)
pdnsd 1.2.9a-par-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,776 kB
  • ctags: 1,843
  • sloc: ansic: 16,471; sh: 1,312; perl: 566; makefile: 167
file content (36 lines) | stat: -rwxr-xr-x 953 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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;
}