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:
parent
a7e48837a7
commit
85d8d19a91
@ -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;
|
||||||
|
40
fhem/fhem.pl
40
fhem/fhem.pl
@ -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: $!";
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user