]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh
export write_log
[debhelper.git] / dh
diff --git a/dh b/dh
index d076919a82db1dab088c1e93a9b86960ae74c64d..f557a6330ef660fc343fa828990c13902b741f41 100755 (executable)
--- a/dh
+++ b/dh
@@ -194,7 +194,16 @@ default. This is how to use dh_pycentral instead.
 # Stash this away before init modifies it.
 my @ARGV_orig=@ARGV;
 
-init();
+init(options => {
+       "until=s" => \$dh{UNTIL},
+       "after=s" => \$dh{AFTER},
+       "before=s" => \$dh{BEFORE},
+       "remaining" => \$dh{REMAINING},
+       "with=s" => sub {
+               my ($option,$value)=@_;
+               push @{$dh{WITH}},$value;
+       },
+});
 inhibit_log();
 
 # Definitions of sequences.
@@ -240,6 +249,7 @@ $sequences{install} = [@{$sequences{build}}, qw{
        dh_installudev
        dh_installwm
        dh_installxfonts
+       dh_bugfiles
        dh_lintian
        dh_desktop
        dh_gconf
@@ -366,7 +376,7 @@ while (@ARGV_orig) {
 my %logged;
 my %startpoint;
 foreach my $package (@packages) {
-       my @log=loadlog($package);
+       my @log=load_log($package, \%logged);
        if ($dh{AFTER}) {
                # Run commands in the sequence that come after the
                # specified command.
@@ -376,7 +386,7 @@ foreach my $package (@packages) {
                # no commands remain to run after it, communicating to
                # future dh instances that the specified command should not
                # be run again.
-               writelog($sequence[$startpoint{$package}-1], $package);
+               write_log($sequence[$startpoint{$package}-1], $package);
        }
        elsif ($dh{REMAINING}) {
                # Start at the beginning so all remaining commands will get
@@ -433,6 +443,10 @@ sub run {
        my @exclude=@{shift()};
        my @options=@_;
        
+       # If some packages are excluded, add flags
+       # to prevent them from being acted on.
+       push @options, map { "-N$_" } @exclude;
+
        # Check for override targets in debian/rules and
        # run them instead of running the command directly.
        my $override_command;
@@ -444,11 +458,6 @@ sub run {
                $command="debian/rules";
                @options="override_".$override_command;
        }
-       else {
-               # If some packages are excluded, add flags
-               # to prevent them from being acted on.
-               push @options, map { "-N$_" } @exclude;
-       }
 
        # 3 space indent lines the command being run up under the 
        # sequence name after "dh ".
@@ -470,30 +479,11 @@ sub run {
                        # been run by the rules file target.
                        my %packages=map { $_ => 1 } @packages;
                        map { delete $packages{$_} } @exclude;
-                       writelog($override_command, keys %packages);
+                       write_log($override_command, keys %packages);
                }
        }
 }
 
-sub loadlog {
-       my $package=shift;
-       my $ext=pkgext($package);
-       
-       my @log;
-       open(LOG, "<", "debian/${ext}debhelper.log") || return;
-       while (<LOG>) {
-               chomp;
-               push @log, $_;
-               $logged{$package}{$_}=1;
-       }
-       close LOG;
-       return @log;
-}
-
-sub writelog {
-       Debian::Debhelper::Dh_Lib::write_log(@_);
-}
-
 {
 my %targets;
 my $rules_parsed;
@@ -506,7 +496,7 @@ sub rules_explicit_target {
        if (! $rules_parsed) {  
                my $processing_targets = 0;
                my $not_a_target = 0;
-               open(MAKE, "make -Rrnpsf debian/rules debhelper-fail-me 2>/dev/null |");
+               open(MAKE, "LC_ALL=C make -Rrnpsf debian/rules debhelper-fail-me 2>/dev/null |");
                while (<MAKE>) {
                        if ($processing_targets) {
                                if (/^# Not a target:/) {