diff options
author | Modestas Vainius <modestas@vainius.eu> | 2009-03-23 02:23:17 +0200 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-03-23 14:59:13 -0400 |
commit | 66c68aa531bc5a1739be40c25483f036022de7a1 (patch) | |
tree | 4eb57b19e070a427bdffdf94a7308c45c62aa8b8 /Debian | |
parent | ce53a5276c9f3a388dce10f442c3c1659e3bccdb (diff) | |
download | debhelper-66c68aa531bc5a1739be40c25483f036022de7a1.tar.gz |
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')
-rw-r--r-- | Debian/Debhelper/Dh_Getopt.pm | 6 | ||||
-rw-r--r-- | Debian/Debhelper/Dh_Lib.pm | 19 |
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; |