[Amavisadmin-svn] SF.net SVN: amavisadmin: [58] amavisadmin/trunk/tools/build_script.pl
Status: Beta
Brought to you by:
streindl
From: <str...@us...> - 2007-01-28 16:44:41
|
Revision: 58 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=58&view=rev Author: streindl Date: 2007-01-28 08:44:38 -0800 (Sun, 28 Jan 2007) Log Message: ----------- Filter tokens in XML sources Modified Paths: -------------- amavisadmin/trunk/tools/build_script.pl Modified: amavisadmin/trunk/tools/build_script.pl =================================================================== --- amavisadmin/trunk/tools/build_script.pl 2007-01-28 12:24:03 UTC (rev 57) +++ amavisadmin/trunk/tools/build_script.pl 2007-01-28 16:44:38 UTC (rev 58) @@ -24,6 +24,7 @@ use File::stat; use File::Basename; use File::Find; +use File::MimeInfo qw(mimetype); use File::Copy; use Cwd; @@ -34,7 +35,7 @@ sub createTar(); sub copy_dir($); -sub replaceParams(); +sub replaceParams($); sub copy_file($$); sub copy_doc_dir(); sub create_file_list(); @@ -45,10 +46,12 @@ my $man=0; my $compressbzip2 = 0; my $compressgzip = 0; -my $createtar=undef; +my $do_createtar=1; +my $createtar; +my $buildtime = time; GetOptions("path|p=s" => \$distdir, - "tar|t:s" => \$createtar, + "tar|t!" => \$do_createtar, "clean|c!" => \$cleandir, "bzip2" => \$compressbzip2, "gzip" => \$compressgzip, @@ -87,13 +90,10 @@ $branch="$1"; } -replaceParams(); +$distdir = replaceParams($distdir); -if (defined $createtar) { - if ($createtar eq "") { - $createtar = $distdir . ".tar"; - } -} +$createtar = $distdir . ".tar"; + my $tempdir = "$distdir/temp"; @@ -111,7 +111,7 @@ print "Output to $distdir\n"; -if (defined $createtar) { +if ($do_createtar) { print "Creating tar file $createtar\n"; } @@ -197,7 +197,7 @@ close OUT; # step 6: Tar and compression -if (defined $createtar) { +if ($do_createtar) { createTar(); if ($compressbzip2) { @@ -246,6 +246,29 @@ find ({wanted => \&file_list_item, no_chdir => 1 }, $distdir); } +sub filter_copy($$) { + my ($from, $to) = @_; + + if ($from =~ /.xml$/) { + my $distfile = basename($distdir); + + open IN, "<$from" or die "Cannot open $from for reading ($!)"; + open OUT, ">$to" or die "Cannot open $to for writing ($!)"; + while (<IN>) { + my $line = $_; + $line =~ s/\@version\@/$version::AmavisVersion/g; + $line =~ s/\@distname\@/$distfile/g; + $line =~ s/\@distfile\@/$createtar/g; + print OUT $line; + } + close IN; + close OUT; + } else { + # fast copy + copy ($from, $to); + } +} + sub callback_doc_file() { my $name = $File::Find::name; return if ($name =~ /\.svn/); @@ -256,7 +279,7 @@ } elsif (-d $name) { mkdir "$tempdir/$name"; } else { - copy ($name, "$tempdir/$name"); + filter_copy ($name, "$tempdir/$name"); } } @@ -298,18 +321,22 @@ copy ($from, $to) or die "Copy failed ($!)"; } -sub replaceParams() { - $distdir =~ s/\%V/\%v-r\%r-\%T\%m/g; +sub replaceParams($) { + my $parm = shift; + + $parm =~ s/\%V/\%v-r\%r-\%T\%m/g; my $version = $version::AmavisVersion; - $distdir =~ s/\%v/$version/g; - $distdir =~ s/\%r/$revision/g; - my $datestamp=time2str("%Y-%m-%d", time()); - my $timestamp=time2str("%Y%m%d%I%M%S", time()); - $distdir =~ s/\%d/$datestamp/g; - $distdir =~ s/\%t/$timestamp/g; - $distdir =~ s/\%T/$branch/g; - $distdir =~ s/\%m/$modified/g; - $distdir =~ s/\%p/AmavisAdmin/g; + $parm =~ s/\%v/$version/g; + $parm =~ s/\%r/$revision/g; + my $datestamp=time2str("%Y-%m-%d", $buildtime); + my $timestamp=time2str("%Y%m%d%I%M%S", $buildtime); + $parm =~ s/\%d/$datestamp/g; + $parm =~ s/\%t/$timestamp/g; + $parm =~ s/\%T/$branch/g; + $parm =~ s/\%m/$modified/g; + $parm =~ s/\%p/AmavisAdmin/g; + + return $parm; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |