2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 18:59:33 +00:00
fhem-mirror/fhem/contrib/commandref_split.pl
rudolfkoenig 0ddc3aacc0 Multi-lang support
git-svn-id: https://svn.fhem.de/fhem/trunk@2197 2b470e98-0d58-463d-a4d8-8e2adae1ed80
2012-11-26 15:10:37 +00:00

97 lines
2.3 KiB
Perl

#!/usr/bin/perl
use strict;
use warnings;
my @lang = ("EN", "DE");
my @modDir = ("FHEM");
my %mods;
foreach my $modDir (@modDir) {
opendir(DH, $modDir) || die "Cant open $modDir: $!\n";
while(my $l = readdir DH) {
next if($l !~ m/^\d\d_.*\.pm$/);
my $of = $l;
$l =~ s/.pm$//;
$l =~ s/^[0-9][0-9]_//;
$mods{lc($l)} = "$modDir/$of" if(!$mods{lc($l)});
}
}
my %doc;
my %fnd;
my $modFileName;
foreach my $lang (@lang) {
my $suffix = ($lang eq "EN" ? "" : "_$lang");
my $docIn = "docs/commandref$suffix.html";
my $docOut = "docs/commandref_frame$suffix.html";
#my @modDir = ("FHEM", "contrib", "webfrontend/pgm5");
open(IN, "$docIn") || die "Cant open $docIn: $!\n";
open(OUT, ">$docOut") || die "Cant open $docOut: $!\n";
my $content = "";
my $skipping;
while(my $l = <IN>) {
$l =~ s/[\r\n]//g;
if($l =~ m,^<a name="(.*)"></a>$,) {
if($modFileName) {
$doc{$modFileName}{$lang} = $content;
$content = "";
}
my $mod = lc($1);
if($mods{$mod}) {
print "Double-Fnd: $mod\n" if($fnd{$mod});
$fnd{$mod} = 1;
$modFileName = $mods{$mod};
} else {
print "Not a module: $mod\n" if($lang eq "EN");
$modFileName = "";
}
}
if($l =~ m,href="#global",) {
print OUT "$l\n";
$skipping = 1;
next;
}
$skipping = 0 if($skipping && $l =~ m,</ul>,);
next if($skipping);
if($modFileName){
$content .= "$l\n";
} else {
print OUT "$l\n";
}
}
}
foreach my $mod (sort {$mods{$a} cmp $mods{$b}} keys %mods) {
print "Missing doc for $mods{$mod}\n" if(!$fnd{$mod});
$modFileName = $mods{$mod};
open(IN, "$modFileName") || die("$modFileName: $!\n");
open(OUT, ">$modFileName.NEW") || die("$modFileName.NEW: $!\n");
while(my $l = <IN>) {
print OUT $l;
if($l =~ m/^1;/) {
if($doc{$modFileName}) {
print OUT "\n=pod\n\n";
foreach my $lang (@lang) {
next if(!$doc{$modFileName}{$lang});
my $suffix = ($lang eq "EN" ? "" : "_$lang");
print OUT "=begin html$suffix\n\n";
print OUT $doc{$modFileName}{$lang};
print OUT "=end html$suffix\n\n";
}
print OUT "=cut\n";
}
last;
}
}
close(IN);
close(OUT);
rename("$modFileName.NEW", $modFileName);
}