summaryrefslogtreecommitdiffstats
path: root/debian/convert_docs
diff options
context:
space:
mode:
Diffstat (limited to 'debian/convert_docs')
-rwxr-xr-xdebian/convert_docs111
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);
+}