#
#========================================================================
#
-# Version 1.5.0, released 2 Aug 2002.
+# Version 1.6.0_CVS, released 10 Dec 2002.
#
# See http://backuppc.sourceforge.net.
#
use strict;
-use vars qw(%Conf);
+use vars qw(%Conf %Lang);
use Fcntl qw/:flock/;
use Carp;
use DirHandle ();
sub new
{
my $class = shift;
- my($topDir) = @_;
+ my($topDir, $installDir) = @_;
+
my $self = bless {
- TopDir => $topDir || '__TOPDIR__',
- BinDir => '__INSTALLDIR__/bin',
- Version => '1.5.0',
+ TopDir => $topDir || '/data/BackupPC',
+ BinDir => $installDir || '/usr/local/BackupPC',
+ LibDir => $installDir || '/usr/local/BackupPC',
+ Version => '1.6.0_CVS',
BackupFields => [qw(
num type startTime endTime
nFiles size nFilesExist sizeExist nFilesNew sizeNew
xferErrs xferBadFile xferBadShare tarErrs
compress sizeExistComp sizeNewComp
- noFill fillFromNum mangle
+ noFill fillFromNum mangle xferMethod level
)],
RestoreFields => [qw(
num startTime endTime result errorMsg nFiles size
tarCreateErrs xferErrs
)],
}, $class;
+ $self->{BinDir} .= "/bin";
+ $self->{LibDir} .= "/lib";
#
# Clean up %ENV and setup other variables.
#
return %{$self->{Conf}};
}
+sub Lang
+{
+ my($self) = @_;
+ return $self->{Lang};
+}
+
sub adminJob
{
return " admin ";
}
%{$self->{Conf}} = ( %{$self->{Conf} || {}}, %Conf );
}
+ return if ( !defined($self->{Conf}{Language}) );
+ my $langFile = "$self->{LibDir}/BackupPC/Lang/$self->{Conf}{Language}.pm";
+ if ( !defined($ret = do $langFile) && ($! || $@) ) {
+ $mesg = "Couldn't open language file $langFile: $!" if ( $! );
+ $mesg = "Couldn't execute language file $langFile: $@" if ( $@ );
+ $mesg =~ s/[\n\r]+//;
+ return $mesg;
+ }
+ $self->{Lang} = \%Lang;
return;
}
if ( !open(HOST_INFO, "$self->{TopDir}/conf/hosts") ) {
print(STDERR $self->timeStamp,
"Can't open $self->{TopDir}/conf/hosts\n");
- return;
+ return {};
}
while ( <HOST_INFO> ) {
s/[\n\r]+//;
s/#.*//;
+ s/\s+$//;
next if ( /^\s*$/ || !/^([\w\.-]+\s+.*)/ );
@fld = split(/\s+/, $1);
if ( @hdr ) {
if ( defined($host) ) {
next if ( lc($fld[0]) ne $host );
@{$hosts{lc($fld[0])}}{@hdr} = @fld;
+ close(HOST_INFO);
return \%hosts;
} else {
@{$hosts{lc($fld[0])}}{@hdr} = @fld;
my($d) = $1;
my($f) = $2;
my($cwd) = Cwd::fastcwd();
+ $cwd = $1 if ( $cwd =~ /(.*)/ );
$self->RmTreeQuiet($d, $f);
chdir($cwd) if ( $cwd );
}
my(@files);
my($cwd) = Cwd::fastcwd();
+ $cwd = $1 if ( $cwd =~ /(.*)/ );
return if ( !-d $trashDir );
my $d = DirHandle->new($trashDir)
or carp "Can't read $trashDir: $!";
{
my($self, $name) = @_;
+ return "" if ( $name eq "" );
$name =~ s{([%/\n\r])}{sprintf("%%%02x", ord($1))}eg;
return "f$name";
}