rendered paste body#!/usr/bin/perl -w
use strict;
sub make_debchange ($$$);
sub slurp ($);
$ARGV[0] && chdir $ARGV[0];
my $debmaint = $ENV{'DEBFULLNAME'} || qw(AUTOBUILDER);
my $debmail = $ENV{'DEBEMAIL'} || qw(don@t.know);
my $debdist = qw(experimental);
my $distclean = $ENV{'DO_DISTCLEAN'};
my $autoinstall = $ENV{'DO_AUTOINSTALL'};
my $fastpackage = $ENV{'DO_FASTPACKAGE'};
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my $datetag = sprintf("%d%02d%02d", $year + 1900, $mon, $mday);
opendir(DIR, '.') || die "can't open .: $!";
my @dirs = grep { /^(?!\.)/ && -d "./$_" } readdir(DIR);
closedir DIR;
foreach (@dirs) {
chdir $_;
my $version = get_version();
goto n unless $version;
if ($distclean) {
-f 'Makefile' && print `make distclean`;
}
`rm -rf *.dsc *.tar.gz* *.deb *.changes`;
`mkdir -p ../../$datetag/$_`;
print "$_ :\t $version \n";
-f 'configure' || print `./autogen.sh`;
print make_debchange($_, $version, $datetag);
`rm -rf debian`;
`tar -cvzf ../$_-$version+svn$datetag.orig.tar.gz .`;
`cp -a ../distro-specific-build-files/$_/debian .`;
my $dch = make_debchange($_, $version, $datetag);
$dch .= slurp('debian/changelog');
open (DCH, '>debian/changelog');
print DCH $dch;
close DCH;
if ($fastpackage) {
print `./debian/rules binary`;
} else {
print `dpkg-buildpackage -rfakeroot`;
}
$autoinstall && print `sudo dpkg -i ../*.deb`;
`mv ../*.deb ../*.tar.gz ../*.dsc ../*.changes ../../$datetag/$_/`;
n:
`rm -rf debian`;
chdir '../';
}
sub get_version {
local $_ = slurp("VERSION") || return undef;
/VERSION\s*=\s*(.*)/;
return $1;
}
sub make_debchange ($$$) {
my ($pkg, $version, $datetag) = @_;
my $debdate = `date -R`;
return
"$pkg ($version+svn$datetag-0) $debdist; urgency=low\n\n".
" * NEW SVN PULL\n\n".
" -- $debmaint <$debmail> $debdate\n";
}
sub slurp ($) {
my $file = shift;
local $/ = "";
open (FH, $file) || return undef;
return <FH>; # no need to close();
}