summaryrefslogtreecommitdiff
path: root/Debian/Debhelper
diff options
context:
space:
mode:
authorModestas Vainius <modestas@vainius.eu>2009-03-23 02:23:17 +0200
committerJoey Hess <joey@gnu.kitenet.net>2009-03-23 14:59:13 -0400
commit66c68aa531bc5a1739be40c25483f036022de7a1 (patch)
tree4eb57b19e070a427bdffdf94a7308c45c62aa8b8 /Debian/Debhelper
parentce53a5276c9f3a388dce10f442c3c1659e3bccdb (diff)
Add a global --remaining-packages option.
Add a global --remaining-packages option which allows to skip the command on the packages which it has already been run on (i.e. if the command helper is already present in the package debhelper log). Signed-off-by: Modestas Vainius <modestas@vainius.eu>
Diffstat (limited to 'Debian/Debhelper')
-rw-r--r--Debian/Debhelper/Dh_Getopt.pm6
-rw-r--r--Debian/Debhelper/Dh_Lib.pm19
2 files changed, 23 insertions, 2 deletions
diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm
index ef94e940..5585a54c 100644
--- a/Debian/Debhelper/Dh_Getopt.pm
+++ b/Debian/Debhelper/Dh_Getopt.pm
@@ -91,6 +91,8 @@ sub getoptions {
"N=s" => \&ExcludePackage,
"no-package=s" => \&ExcludePackage,
+ "remaining-packages" => \$dh{EXCLUDE_LOGGED},
+
"dbg-package=s" => \&AddDebugPackage,
"s" => \&AddPackage,
@@ -222,6 +224,10 @@ sub parseopts {
my $package;
my %packages_seen;
foreach $package (@{$dh{DOPACKAGES}}) {
+ if (defined($dh{EXCLUDE_LOGGED}) &&
+ grep { $_ eq basename($0) } load_log($package)) {
+ $exclude_package{$package}=1;
+ }
if (! $exclude_package{$package}) {
if (! exists $packages_seen{$package}) {
$packages_seen{$package}=1;
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm
index d4811283..23e81a60 100644
--- a/Debian/Debhelper/Dh_Lib.pm
+++ b/Debian/Debhelper/Dh_Lib.pm
@@ -15,7 +15,7 @@ use vars qw(@ISA @EXPORT %dh);
&filedoublearray &getpackages &basename &dirname &xargs %dh
&compat &addsubstvar &delsubstvar &excludefile &package_arch
&is_udeb &udeb_filename &debhelper_script_subst &escape_shell
- &inhibit_log);
+ &inhibit_log &load_log);
my $max_compat=7;
@@ -102,7 +102,22 @@ sub END {
if ($? == 0 && $write_log) {
write_log(basename($0), @{$dh{DOPACKAGES}});
}
-}
+}
+
+sub load_log {
+ my ($package, $db)=@_;
+ my $ext=pkgext($package);
+
+ my @log;
+ open(LOG, "<", "debian/${ext}debhelper.log") || return;
+ while (<LOG>) {
+ chomp;
+ push @log, $_;
+ $db->{$package}{$_}=1 if (defined $db);
+ }
+ close LOG;
+ return @log;
+}
sub write_log {
my $cmd=shift;