1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
#!/usr/bin/perl -w
$control = 'debian/control';
$dir = 'debian';
$needclean = 0;
$needlist = 0;
$needdeps = 0;
if (@ARGV) {
$temp = shift;
if ($temp eq "clean") { $needclean = 1; }
elsif ($temp eq "makedeps") { $needlist = 1; }
elsif ($temp eq "gendeps") { $needdeps = 1; }
}
@packages = ();
$first_package = "";
open (CONTROL, "< $control");
while (<CONTROL>) {
if (m/^Package:/) {
$package = (split)[1];
$first_package = $package if $first_package eq "";
if ( -f "${dir}/${package}.in" ) {
push @packages, $package;
}
}
}
close CONTROL;
while (@packages) {
$package = shift(@packages);
$inhead = 1;
$opened = 0;
if ($needdeps) {
print "${dir}/${package}.in ";
next;
}
open (IN, "< ${dir}/${package}.in");
while (<IN>) {
if (m/^\%(.*)\%$/) {
if ($needclean) {
if ($package ne $first_package) {
system("rm -f ${dir}/${package}.${1}");
} else {
system("rm -f ${dir}/${1}");
}
} elsif ($needlist) {
if ($package ne $first_package) {
print "${dir}/${package}.${1} ";
} else {
print "${dir}/${1} ";
}
} else {
$inhead = 0;
if ($opened) { close OUT; } else { $opened = 1; }
if ($package ne $first_package) {
open OUT, "> ${dir}/${package}.${1}";
} else {
open OUT, "> ${dir}/${1}";
}
}
} elsif (!$inhead) {
print OUT $_;
}
}
close OUT;
close IN;
}
|