diff options
Diffstat (limited to 'debian/convert_docs')
-rwxr-xr-x | debian/convert_docs | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/debian/convert_docs b/debian/convert_docs new file mode 100755 index 0000000..b39a58f --- /dev/null +++ b/debian/convert_docs @@ -0,0 +1,111 @@ +#!/usr/bin/perl -w + +use strict; +use File::Path; +use Fatal qw/mkpath symlink open close/; +use File::Copy; +use File::Find; + + +scalar @ARGV == 1 or die; + +my $TGT=$ARGV[0]; +my $SRC=$TGT.".orig"; + +move($TGT, $SRC); + +# list of languages +my @lang = glob("$SRC/index.html.*") or die; +map { s{^.*html\.}{} } @lang; + +# map "ja.euc-jp" to "ja/", ... +my %lpath; +foreach my $l (@lang) { + my $t=$l; + $t =~ s{\..*$}{}; + $lpath{$l}="$t/"; +} + +my @html; +find(sub { $File::Find::name =~ s/^$SRC\///; push(@html, $File::Find::name) if $File::Find::name =~ /\.html$/; }, $SRC); + +foreach my $h (@html) { + my $dir=""; + if ($h =~ m{^(.*/)}) { + $dir=$1; + } + + for my $l (@lang) { + my $tdir="$TGT/$lpath{$l}"; + -d "$tdir$dir" || mkpath("$tdir$dir"); + + my $updir=$dir; + $updir =~ s{[^/]+}{..}g; + $updir .= ".."; + + if ($l eq "en") { + conv("$SRC/$h.en", "$tdir$h", $h, $updir); + } + elsif ( -f "$SRC/$h.$l" ) { + conv("$SRC/$h.$l", "$tdir$h", $h, $updir); + } + else { + symlink("$updir/en/$h", "$tdir$h"); + } + + } +} + +open(my $out, ">", "$TGT/index.html"); +print $out '<html><head>', + '<meta http-equiv="refresh" content="0; URL=en/index.html">', + "</head>\n<body>\n<table>"; +foreach my $l (sort values %lpath) { + print $out qq{<tr><td><a href="${l}index.html">$l</a></td></tr>\n}; +} +print $out '</table></body></html>'; + +move("$SRC/images", "$TGT/images"); +move("$SRC/style", "$TGT/style"); +rmdir("$TGT/style/lang"); +rmdir("$TGT/style/xsl/util"); +rmdir("$TGT/style/xsl"); +rmtree("$SRC"); + + +### END + + +sub conv { + my ($old, $new, $name, $updir) = @_; + + open(my $in, "<", $old); + local $/; + my $file = <$in>; + close($in); + + # /mod/ -> /mod/index.html + $file =~ s{href="([^:"]*/)"}{href="${1}index.html"}g; + + # style and images now one level up + $file =~ s{(src|href)="\.\./(style|images)}{$1="../../$2}g; + $file =~ s{(src|href)="(?:\./)?(style|images)}{$1="../$2}g; + + foreach my $l (values %lpath) { + # language directories one level up + $file =~ s{href="\.\./$l}{href="../../$l}g; + $file =~ s{href="(?:\./)?$l}{href="../$l}g; + $file =~ s{apachectl(?!\.html)}{apache2ctl}g; + } + + # Debian tweaks + $file =~ s{/usr/local/apache2/conf/httpd[.]conf}{/etc/apache2/apache2.conf}g; + $file =~ s{httpd[.]conf}{apache2.conf}g; + $file =~ s{apachectl(?!\.html)}{apache2ctl}g; + $file =~ s{https://www.apache.org/images/SupportApache-small.png}{$updir/images/SupportApache-small.png}g; + + + open(my $out, ">", $new); + print $out $file; + close($out); +} |