Removed the french string in this english version.
[BackupPC.git] / lib / BackupPC / Lib.pm
index b77c778..5946f1b 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 1.5.0, released 2 Aug 2002.
+# Version 1.6.0_CVS, released 10 Dec 2002.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -39,7 +39,7 @@ package BackupPC::Lib;
 
 use strict;
 
-use vars qw(%Conf);
+use vars qw(%Conf %Lang);
 use Fcntl qw/:flock/;
 use Carp;
 use DirHandle ();
@@ -52,23 +52,27 @@ use Digest::MD5;
 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.
     #
@@ -106,6 +110,12 @@ sub Conf
     return %{$self->{Conf}};
 }
 
+sub Lang
+{
+    my($self) = @_;
+    return $self->{Lang};
+}
+
 sub adminJob
 {
     return " admin ";
@@ -248,6 +258,15 @@ sub ConfigRead
         }
         %{$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;
 }
 
@@ -276,17 +295,19 @@ sub HostInfoRead
     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;
@@ -373,6 +394,7 @@ sub RmTreeDefer
         my($d) = $1;
         my($f) = $2;
         my($cwd) = Cwd::fastcwd();
+        $cwd = $1 if ( $cwd =~ /(.*)/ );
         $self->RmTreeQuiet($d, $f);
         chdir($cwd) if ( $cwd );
     }
@@ -387,6 +409,7 @@ sub RmTreeTrashEmpty
     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: $!";
@@ -712,6 +735,7 @@ sub fileNameEltMangle
 {
     my($self, $name) = @_;
 
+    return "" if ( $name eq "" );
     $name =~ s{([%/\n\r])}{sprintf("%%%02x", ord($1))}eg;
     return "f$name";
 }