[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.
|