X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=makeDist;h=e3ba30ffafb4bca8905c25b94890dce12afc91b3;hp=d4d5c81b67013751f5c239378851e57a690d5753;hb=f6257f558390295c581f4e5af8f084341db05d34;hpb=1282f5f90cf092cb406ee186e6bf328875e4c306 diff --git a/makeDist b/makeDist index d4d5c81..e3ba30f 100755 --- a/makeDist +++ b/makeDist @@ -1,6 +1,38 @@ #!/bin/perl # -# Build a BackupPC distribution +# makeDist: Build a BackupPC distribution +# +# DESCRIPTION +# +# This script should be run with no arguments to build a +# distribution. The $Version and $ReleaseDate should be +# edited below to specify the version name and the release +# date. The distribution is createede in the sub-directory +# dist. The dsitribution is in the file name: +# +# dist/BackupPC-$Version.tar.gz. +# +# AUTHOR +# Craig Barratt +# +# COPYRIGHT +# Copyright (C) 2001-2003 Craig Barratt +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +#======================================================================== # use strict; @@ -9,8 +41,8 @@ use File::Copy; umask(0022); -my $Version = "1.5.0"; -my $ReleaseDate = "2 Aug 2002"; +my $Version = "2.0.0beta2"; +my $ReleaseDate = "11 May 2003"; my $DistDir = "dist/BackupPC-$Version"; my @PerlSrc = qw( @@ -30,11 +62,16 @@ my @PerlSrc = qw( lib/BackupPC/Attrib.pm lib/BackupPC/FileZIO.pm lib/BackupPC/Lib.pm + lib/BackupPC/Lang/de.pm lib/BackupPC/Lang/en.pm + lib/BackupPC/Lang/es.pm lib/BackupPC/Lang/fr.pm lib/BackupPC/PoolWrite.pm + lib/BackupPC/View.pm lib/BackupPC/Xfer/Smb.pm lib/BackupPC/Xfer/Tar.pm + lib/BackupPC/Xfer/Rsync.pm + lib/BackupPC/Xfer/RsyncFileIO.pm lib/BackupPC/Zip/FileMember.pm cgi-bin/BackupPC_Admin ); @@ -43,15 +80,19 @@ my @PerlSrc = qw( # Check config parameters # my $ConfVars = {}; -CheckConfigParams("conf/config.pl", $ConfVars, 0); +my $errCnt; + +$errCnt += CheckConfigParams("conf/config.pl", $ConfVars, 0); $ConfVars->{BackupPCUser} = 2; $ConfVars->{CgiDir} = 2; $ConfVars->{InstallDir} = 2; $ConfVars->{CgiImageDir} = 2; foreach my $file ( @PerlSrc ) { - CheckConfigParams($file, $ConfVars, 1); + $errCnt += CheckConfigParams($file, $ConfVars, 1); } -my $errCnt; +$errCnt += CheckLangUsage(); +exit(1) if ( $errCnt ); + foreach my $var ( sort(keys(%$ConfVars) ) ) { next if ( $ConfVars->{$var} >= 2 || $var =~ /^\$/ ); printf("Unused config parameter $var\n"); @@ -62,8 +103,8 @@ exit(1) if ( $errCnt ); rmtree($DistDir, 0, 0); mkpath($DistDir, 0, 0777); -foreach my $dir ( qw(bin lib/BackupPC/Xfer lib/BackupPC/Zip doc conf - images init.d/src cgi-bin) ) { +foreach my $dir ( qw(bin lib/BackupPC/Xfer lib/BackupPC/Zip lib/BackupPC/Lang + doc conf images init.d/src cgi-bin) ) { mkpath("$DistDir/$dir", 0, 0777); } @@ -86,8 +127,12 @@ foreach my $file ( (@PerlSrc, conf/config.pl conf/hosts init.d/README + init.d/src/debian-backuppc + init.d/src/gentoo-backuppc + init.d/src/gentoo-backuppc.conf init.d/src/linux-backuppc init.d/src/solaris-backuppc + init.d/src/suse-backuppc doc/BackupPC.pod doc/BackupPC.html README @@ -99,6 +144,9 @@ foreach my $file ( (@PerlSrc, } rmtree("doc", 0, 0); system("cd dist ; tar zcf BackupPC-$Version.tar.gz BackupPC-$Version"); +print("Distribution written to dist/BackupPC-$Version.tar.gz\n"); +unlink("pod2htmd.x~~"); +unlink("pod2htmi.x~~"); ########################################################################### # Subroutines @@ -134,9 +182,9 @@ sub InstallFile } elsif ( $file =~ /Lib.pm/ && /(.*Version *=> .*)'[\w\d\.]+',/ ) { print OUT "$1'$Version',\n"; } elsif ( $file =~ /Lib.pm/ && /(.*BinDir *=> .*)'.*',/ ) { - print OUT "$1'__INSTALLDIR__/bin',\n"; + print OUT "$1'__INSTALLDIR__',\n"; } elsif ( $file =~ /Lib.pm/ && /(.*LibDir *=> .*)'.*',/ ) { - print OUT "$1'__INSTALLDIR__/lib',\n"; + print OUT "$1'__INSTALLDIR__',\n"; } else { print OUT; } @@ -210,19 +258,26 @@ sub config2pod sub CheckConfigParams { my($file, $vars, $check) = @_; + my $errors; open(F, $file) || die("can't open $file\n"); if ( $check ) { while ( ) { - s/\$self->{Conf}{([^}\$]+)}/if ( !defined($vars->{$1}) ) { + s/\$(self|bpc)->{Conf}{([^}\$]+)}/if ( !defined($vars->{$2}) ) { + print("Unexpected Conf var $2 in $file\n"); + $errors++; + } else { + $vars->{$2}++; + }/eg; + s/\$[Cc]onf(?:->)?{([^}\$]+)}/if ( !defined($vars->{$1}) ) { print("Unexpected Conf var $1 in $file\n"); - exit(1); + $errors++; } else { $vars->{$1}++; }/eg; - s/\$[Cc]onf(?:->)?{([^}\$]+)}/if ( !defined($vars->{$1}) ) { + s/UserCommandRun\("([^"]*)"\)/if ( !defined($vars->{$1}) ) { print("Unexpected Conf var $1 in $file\n"); - exit(1); + $errors++; } else { $vars->{$1}++; }/eg; @@ -234,4 +289,52 @@ sub CheckConfigParams } } close(F); + return $errors; +} + +# +# Make sure that every lang variable in cgi-bin/BackupPC_Admin matches +# the strings in each lib/BackupPC/Lang/*.pm file. This makes sure +# we didn't miss any translations in any of the languages. +# +sub CheckLangUsage +{ + my $errors; + my $vars = {}; + + foreach my $file ( qw(cgi-bin/BackupPC_Admin bin/BackupPC_sendEmail) ) { + open(F, $file) || die("can't open $file"); + while ( ) { + s/\$Lang->{([^}]*)}/$vars->{$1} = 1;/eg; + } + close(F); + } + foreach my $f ( ) { + my $done = {}; + open(F, $f) || die("can't open $f\n"); + while ( ) { + s/#.*//g; + s/\$Lang{([^}]*)}/ + my $var = $1; + next if ( $var =~ m{^(Reason_|Status_)} ); + if ( !defined($vars->{$var}) ) { + print("Unexpected Lang var $var in $f\n"); + $errors++; + } else { + $done->{$var} = 1; + }/eg; + } + close(F); + foreach my $v ( keys(%$vars) ) { + # + # skip "variables" with "$", since they are like expressions + # + next if ( $v =~ /\$/ ); + if ( !defined($done->{$v}) ) { + print("Lang var $v missing from $f\n"); + $errors++; + } + } + } + return $errors; }