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