Lemonldap-NG-Common
view release on metacpan or search on metacpan
lib/Lemonldap/NG/Common/Conf/Backends/File.pm view on Meta::CPAN
sub load {
my ( $self, $cfgNum, $fields ) = @_;
my ( $f, $filename );
if ( -e $self->_file($cfgNum) ) {
$filename = $self->_file($cfgNum);
}
elsif ( -e "$self->{dirName}/lmConf-$cfgNum.js" ) {
$filename = "$self->{dirName}/lmConf-$cfgNum.js";
}
if ($filename) {
local $/ = '';
my $ret;
unless ( open FILE, '<', $filename ) {
$Lemonldap::NG::Common::Conf::msg .= "Read error: $!$@";
return undef;
}
binmode FILE;
$f = join( '', <FILE> );
close FILE;
eval { $ret = from_json( $f, { allow_nonref => 1 } ) };
if ($@) {
lib/Lemonldap/NG/Common/Conf/Backends/File.pm view on Meta::CPAN
$Lemonldap::NG::Common::Conf::msg .=
"JSON fails to read file: $@ \n";
return undef;
}
return $ret;
}
# Old format
elsif ( -e "$self->{dirName}/lmConf-$cfgNum" ) {
open FILE, '<', "$self->{dirName}/lmConf-$cfgNum" or die "$!$@";
local $/ = "";
unless ( open FILE, '<', $self->{dirName} . "/lmConf-$cfgNum" ) {
$Lemonldap::NG::Common::Conf::msg .= "Open file failed: $! \n";
return undef;
}
while (<FILE>) {
my ( $k, $v ) = split /\n\s+/;
chomp $k;
$v =~ s/\n*$//;
if ($fields) {
$f->{$k} = $v if ( grep { $_ eq $k } @$fields );
lib/Lemonldap/NG/Common/Conf/Backends/YAMLFile.pm view on Meta::CPAN
print FILE $f;
close FILE;
umask($mask);
return $fields->{cfgNum};
}
sub load {
my ( $self, $cfgNum, $fields ) = @_;
my ( $f, $filename );
$filename = $self->_yamlFile($cfgNum);
local $/ = '';
my $ret;
unless ( open FILE, '<', $filename ) {
$Lemonldap::NG::Common::Conf::msg .= "Read error: $!$@";
return undef;
}
binmode FILE;
$f = join( '', <FILE> );
eval { $ret = YAML::Load($f) };
if ($@) {
print STDERR "$@\n";
( run in 0.220 second using v1.01-cache-2.11-cpan-49f99fa48dc )