#
#========================================================================
#
-# Version 3.0.0alpha, released 23 Jan 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
#
# See http://backuppc.sourceforge.net.
#
return "$s->{ConfDir}/config.pl" if ( !defined($host) );
if ( $s->{useFHS} ) {
- return "$s->{ConfDir}/host/$host.pl";
+ return "$s->{ConfDir}/pc/$host.pl";
} else {
+ return "$s->{TopDir}/pc/$host/config.pl"
+ if ( -f "$s->{TopDir}/pc/$host/config.pl" );
return "$s->{ConfDir}/$host.pl"
if ( $host ne "config" && -f "$s->{ConfDir}/$host.pl" );
- return "$s->{TopDir}/pc/$host/config.pl";
+ return "$s->{ConfDir}/pc/$host.pl";
}
}
$conf->{$param} = { "*" => $conf->{$param} };
}
+ #
+ # Handle backward compatibility with defunct BlackoutHourBegin,
+ # BlackoutHourEnd, and BlackoutWeekDays parameters.
+ #
+ if ( defined($conf->{BlackoutHourBegin}) ) {
+ push(@{$conf->{BlackoutPeriods}},
+ {
+ hourBegin => $conf->{BlackoutHourBegin},
+ hourEnd => $conf->{BlackoutHourEnd},
+ weekDays => $conf->{BlackoutWeekDays},
+ }
+ );
+ delete($conf->{BlackoutHourBegin});
+ delete($conf->{BlackoutHourEnd});
+ delete($conf->{BlackoutWeekDays});
+ }
+
return (undef, $conf);
}
{
my($s, $inFile, $newConf) = @_;
local(*C);
- my($contents, $out);
- my $comment = 1;
- my $skipVar = 0;
- my $endLine = undef;
+ my($contents, $skipExpr, $fakeVar);
my $done = {};
if ( -f $inFile ) {
binmode(C);
while ( <C> ) {
- if ( $comment && /^\s*#/ ) {
- $out .= $_;
- } elsif ( /^\s*\$Conf\{([^}]*)\}\s*=/ ) {
+ if ( /^\s*\$Conf\{([^}]*)\}\s*=(.*)/ ) {
my $var = $1;
- if ( exists($newConf->{$var}) ) {
- $contents .= $out;
+ if ( exists($newConf->{$var}) ) {
+ $skipExpr = "\$fakeVar = $2\n";
my $d = Data::Dumper->new([$newConf->{$var}], [*value]);
$d->Indent(1);
$d->Terse(1);
$contents .= "\$Conf{$var} = " . $value;
$done->{$var} = 1;
}
- if ( /^\s*\$Conf\{[^}]*} *= *<<(.*);/
- || /^\s*\$Conf\{[^}]*} *= *<<'(.*)';/ ) {
- $endLine = $1;
- $skipVar = 1;
- } else {
- $endLine = undef;
- $skipVar = /^[^#]*;/ ? 0 : 1;
- }
- $out = "";
- } elsif ( $skipVar ) {
- if ( !defined($endLine) && /^[^#]*;/ ) {
- $skipVar = 0;
- $comment = 1;
- }
- if ( defined($endLine) && /^\Q$endLine\E[\n\r]*$/ ) {
- $endLine = undef;
- $skipVar = 0;
- $comment = 1;
- }
+ } elsif ( defined($skipExpr) ) {
+ $skipExpr .= $_;
} else {
- $out .= $_;
+ $contents .= $_;
+ }
+ if ( defined($skipExpr) ) {
+ #
+ # if we have a complete expression, then we are done
+ # skipping text from the original config file.
+ #
+ eval($skipExpr);
+ $skipExpr = undef if ( $@ eq "" );
}
}
close(C);
- $contents .= $out;
}
#
if ( @hdr ) {
if ( defined($host) ) {
next if ( lc($fld[0]) ne lc($host) );
- @{$hosts{$fld[0]}}{@hdr} = @fld;
+ @{$hosts{lc($fld[0])}}{@hdr} = @fld;
close(HOST_INFO);
close(LOCK);
return \%hosts;
} else {
- @{$hosts{$fld[0]}}{@hdr} = @fld;
+ @{$hosts{lc($fld[0])}}{@hdr} = @fld;
}
} else {
@hdr = @fld;