#
#========================================================================
#
-# Version 2.1.0_CVS, released 13 Mar 2004.
+# Version 2.1.0beta2, released 23 May 2004.
#
# See http://backuppc.sourceforge.net.
#
TopDir => $topDir || '/data/BackupPC',
BinDir => $installDir || '/usr/local/BackupPC',
LibDir => $installDir || '/usr/local/BackupPC',
- Version => '2.1.0_CVS',
+ Version => '2.1.0beta2pl1',
BackupFields => [qw(
num type startTime endTime
nFiles size nFilesExist sizeExist nFilesNew sizeNew
sub adminJob
{
- return " admin ";
+ my($bpc, $num) = @_;
+ return " admin " if ( !$num );
+ return " admin$num ";
+}
+
+sub isAdminJob
+{
+ my($bpc, $str) = @_;
+ return $str =~ /^ admin/;
}
sub trashJob
#
# Also, $? should be set when the CHILD pipe is closed.
#
-sub cmdSystemOrEval
+sub cmdSystemOrEvalLong
{
- my($bpc, $cmd, $stdoutCB, @args) = @_;
+ my($bpc, $cmd, $stdoutCB, $ignoreStderr, @args) = @_;
my($pid, $out, $allOut);
local(*CHILD);
# This is the child
#
close(STDERR);
- open(STDERR, ">&STDOUT");
+ if ( $ignoreStderr ) {
+ open(STDERR, ">", "/dev/null");
+ } else {
+ open(STDERR, ">&STDOUT");
+ }
alarm(0);
$cmd = [map { m/(.*)/ } @$cmd]; # untaint
#
return $out;
}
+#
+# The shorter version that sets $ignoreStderr = 0, ie: merges stdout
+# and stderr together.
+#
+sub cmdSystemOrEval
+{
+ my($bpc, $cmd, $stdoutCB, @args) = @_;
+
+ return $bpc->cmdSystemOrEvalLong($cmd, $stdoutCB, 0, @args);
+}
+
+
+#
+# Promotes $conf->{BackupFilesOnly}, $conf->{BackupFilesExclude}
+# to hashes and $conf->{$shareName} to an array
+#
+sub backupFileConfFix
+{
+ my($bpc, $conf, $shareName) = @_;
+
+ $conf->{$shareName} = [ $conf->{$shareName} ]
+ if ( ref($conf->{$shareName}) ne "ARRAY" );
+ foreach my $param qw(BackupFilesOnly BackupFilesExclude) {
+ next if ( !defined($conf->{$param}) || ref($conf->{$param}) eq "HASH" );
+ $conf->{$param} = [ $conf->{$param} ]
+ if ( ref($conf->{$param}) ne "ARRAY" );
+ $conf->{$param} = { map { $_ => $conf->{$param} } @{$conf->{$shareName}} };
+ }
+}
+
1;