diff --git a/fhem/contrib/commandref_static.pl b/fhem/contrib/commandref_static.pl index e5fc60994..cc75188c0 100755 --- a/fhem/contrib/commandref_static.pl +++ b/fhem/contrib/commandref_static.pl @@ -5,61 +5,9 @@ use strict; use warnings; -sub _cref_search { - my ($mod,$lang) = @_; - my $output = ""; - my $skip = 1; - my ($err,@text) = _cref_read($mod); - return $err if $err; - foreach my $l (@text) { - if($l =~ m/^=begin html$lang$/) { - $skip = 0; - } elsif($l =~ m/^=end html$lang$/) { - $skip = 1; - } elsif(!$skip) { - $output .= "$l\n"; - if($l =~ m,INSERT_DOC_FROM: ([^ ]+)/([^ /]+) ,) { - my ($dir, $re) = ($1, $2); - if(opendir(DH, $dir)) { - foreach my $file (grep { m/^$2$/ } readdir(DH)) { - $output .= cref_search("$dir/$file", $lang); - } - closedir(DH); - } - } - } - } - return $output; -} - -sub _cref_read { - my ($fileName) = @_; - my ($err, @ret); - if(open(FH, $fileName)) { - @ret = ; - close(FH); - chomp(@ret); - } else { - $err = "Can't open $fileName: $!"; - } - return ($err, @ret); -} - -sub _cref_write { - my ($fileName,$content) = @_; - - if(open(FH, ">$fileName")) { - binmode (FH); -# foreach my $l (@rows) { -# print FH $l,$nl; -# } - print FH, $content; - close(FH); - return undef; - } else { - return "Can't open $fileName: $!"; - } -} +sub _cref_search; +sub _cref_read; +sub _cref_write; my $protVersion=1; my @lang = ("EN", "DE"); @@ -197,3 +145,61 @@ EOF close(OUT); close(IN); } + + +sub _cref_search { + my ($mod,$lang) = @_; + print "_cref_search $mod $lang"; + my $output = ""; + my $skip = 1; + my ($err,@text) = _cref_read($mod); + return $err if $err; + foreach my $l (@text) { + if($l =~ m/^=begin html$lang$/) { + $skip = 0; + } elsif($l =~ m/^=end html$lang$/) { + $skip = 1; + } elsif(!$skip) { + $output .= "$l\n"; + if($l =~ m,INSERT_DOC_FROM: ([^ ]+)/([^ /]+) ,) { + my ($dir, $re) = ($1, $2); + if(opendir(DH, $dir)) { + foreach my $file (grep { m/^$2$/ } readdir(DH)) { + $output .= cref_search("$dir/$file", $lang); + } + closedir(DH); + } + } + } + } + return $output; +} + +sub _cref_read { + my ($fileName) = @_; + my ($err, @ret); + if(open(FH, $fileName)) { + @ret = ; + close(FH); + chomp(@ret); + } else { + $err = "Can't open $fileName: $!"; + } + return ($err, @ret); +} + +sub _cref_write { + my ($fileName,$content) = @_; + + if(open(FH, ">$fileName")) { + binmode (FH); +# foreach my $l (@rows) { +# print FH $l,$nl; +# } + print FH $content; + close(FH); + return undef; + } else { + return "Can't open $fileName: $!"; + } +}