]> git.donarmstrong.com Git - debhelper.git/blobdiff - Debian/Debhelper/Dh_Lib.pm
Fix error message. Closes: #628053
[debhelper.git] / Debian / Debhelper / Dh_Lib.pm
index 9b6118e90c44b871582cb5fbfb6c2792b4236729..51b53d3e600b158223f6b32ec68eab16abb4556e 100644 (file)
@@ -15,12 +15,12 @@ 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 &load_log &write_log &dpkg_architecture_value
-           &sourcepackage
+           &inhibit_log &load_log &write_log &commit_override_log
+           &dpkg_architecture_value &sourcepackage
            &is_make_jobserver_unavailable &clean_jobserver_makeflags
            &cross_command);
 
-my $max_compat=8;
+my $max_compat=9;
 
 sub init {
        my %params=@_;
@@ -107,16 +107,36 @@ sub END {
        }
 }
 
+sub logfile {
+       my $package=shift;
+       my $ext=pkgext($package);
+       return "debian/${ext}debhelper.log"
+}
+
+sub add_override {
+       my $line=shift;
+       $line="override_$ENV{DH_INTERNAL_OVERRIDE} $line"
+               if defined $ENV{DH_INTERNAL_OVERRIDE};
+       return $line;
+}
+
+sub remove_override {
+       my $line=shift;
+       $line=~s/^\Qoverride_$ENV{DH_INTERNAL_OVERRIDE}\E\s+//
+               if defined $ENV{DH_INTERNAL_OVERRIDE};
+       return $line;
+}
+
 sub load_log {
        my ($package, $db)=@_;
-       my $ext=pkgext($package);
 
        my @log;
-       open(LOG, "<", "debian/${ext}debhelper.log") || return;
+       open(LOG, "<", logfile($package)) || return;
        while (<LOG>) {
                chomp;
-               push @log, $_;
-               $db->{$package}{$_}=1 if defined $db;
+               my $command=remove_override($_);
+               push @log, $command;
+               $db->{$package}{$command}=1 if defined $db;
        }
        close LOG;
        return @log;
@@ -126,13 +146,22 @@ sub write_log {
        my $cmd=shift;
        my @packages=@_;
 
-       return if defined $ENV{DH_INHIBIT_LOG} && $cmd eq $ENV{DH_INHIBIT_LOG};
-
        foreach my $package (@packages) {
-               my $ext=pkgext($package);
-               my $log="debian/${ext}debhelper.log";
+               my $log=logfile($package);
                open(LOG, ">>", $log) || error("failed to write to ${log}: $!");
-               print LOG $cmd."\n";
+               print LOG add_override($cmd)."\n";
+               close LOG;
+       }
+}
+
+sub commit_override_log {
+       my @packages=@_;
+
+       foreach my $package (@packages) {
+               my @log=map { remove_override($_) } load_log($package);
+               my $log=logfile($package);
+               open(LOG, ">", $log) || error("failed to write to ${log}: $!");
+               print LOG $_."\n" foreach @log;
                close LOG;
        }
 }
@@ -580,7 +609,7 @@ sub filedoublearray {
        my $globdir=shift;
 
        my @ret;
-       open (DH_FARRAY_IN, $file) || error("cannot read $file: $1");
+       open (DH_FARRAY_IN, $file) || error("cannot read $file: $!");
        while (<DH_FARRAY_IN>) {
                chomp;
                # Only ignore comments and empty lines in v5 mode.