2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-12 22:56: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 {
$fileName =~ s,.*/,,g; # Little bit of security
my $filePath = FW_fileNameToPath($fileName);
my($err, @data) = FileRead($filePath);
my($err, @data) = FileRead({FileName=>$filePath, ForceType=>"file"} );
if($err) {
FW_pO "<div id=\"content\">$err</div>";
return;
@ -1678,7 +1678,7 @@ FW_style($$)
if($cfgDB ne 'configDB') { # save file to filesystem
$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) {
FW_pO "<div id=\"content\">$filePath: $!</div>";
return;

View File

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