2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-13 17:26:34 +00:00

fhem.pl/FHEMWEB: add conditional ForceType to FileRead/FileWrite, Forum #24132

git-svn-id: https://svn.fhem.de/fhem/trunk@6022 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2014-06-01 11:45:00 +00:00
parent a7e48837a7
commit 85d8d19a91
2 changed files with 30 additions and 14 deletions

View File

@ -1642,7 +1642,7 @@ FW_style($$)
} else { } else {
$fileName =~ s,.*/,,g; # Little bit of security $fileName =~ s,.*/,,g; # Little bit of security
my $filePath = FW_fileNameToPath($fileName); my $filePath = FW_fileNameToPath($fileName);
my($err, @data) = FileRead($filePath); my($err, @data) = FileRead({FileName=>$filePath, ForceType=>"file"} );
if($err) { if($err) {
FW_pO "<div id=\"content\">$err</div>"; FW_pO "<div id=\"content\">$err</div>";
return; return;
@ -1678,7 +1678,7 @@ FW_style($$)
if($cfgDB ne 'configDB') { # save file to filesystem if($cfgDB ne 'configDB') { # save file to filesystem
$FW_data =~ s/\r//g; $FW_data =~ s/\r//g;
my $err = FileWrite($filePath, split("\n", $FW_data)); my $err = FileWrite({FileName=>$filePath, ForceType=>"file"}, split("\n", $FW_data));
if($err) { if($err) {
FW_pO "<div id=\"content\">$filePath: $!</div>"; FW_pO "<div id=\"content\">$filePath: $!</div>";
return; return;

View File

@ -3804,19 +3804,27 @@ configDBUsed()
sub sub
FileRead($) FileRead($)
{ {
my ($fname) = @_; my ($param) = @_;
my ($err, @ret); my ($err, @ret, $fileName, $forceType);
if(configDBUsed()) { if(ref($param) eq "HASH") {
($err, @ret) = cfgDB_FileRead($fname); $fileName = $param->{FileName};
$forceType = $param->{ForceType};
} else {
$fileName = $param;
}
$forceType = "" if(!defined($forceType));
if(configDBUsed() && $forceType ne "file") {
($err, @ret) = cfgDB_FileRead($fileName);
} else { } else {
if(open(FH, $fname)) { if(open(FH, $fileName)) {
@ret = <FH>; @ret = <FH>;
close(FH); close(FH);
chomp(@ret); chomp(@ret);
} else { } else {
$err = "Can't open $fname: $!"; $err = "Can't open $fileName: $!";
} }
} }
@ -3826,14 +3834,22 @@ FileRead($)
sub sub
FileWrite($@) FileWrite($@)
{ {
my ($fname, @rows) = @_; my ($param, @rows) = @_;
my ($err, @ret); my ($err, @ret, $fileName, $forceType);
if(configDBUsed()) { if(ref($param) eq "HASH") {
return cfgDB_FileWrite($fname, @rows); $fileName = $param->{FileName};
$forceType = $param->{ForceType};
} else {
$fileName = $param;
}
$forceType = "" if(!defined($forceType));
if(configDBUsed() && $forceType ne "file") {
return cfgDB_FileWrite($fileName, @rows);
} else { } else {
if(open(FH, ">$fname")) { if(open(FH, ">$fileName")) {
binmode (FH); binmode (FH);
foreach my $l (@rows) { foreach my $l (@rows) {
print FH $l,"\n"; print FH $l,"\n";
@ -3842,7 +3858,7 @@ FileWrite($@)
return undef; return undef;
} else { } else {
return "Can't open $fname: $!"; return "Can't open $fileName: $!";
} }
} }