Package: debhelper Version: 9.20150507 Severity: wishlist Tags: patch Dear Maintainer,
Dh_Lib.pm provides a doit_noerror method but Buildsystem.pm doesn't define similar methods for doit_in_sourcedir and doit_in_builddir. I'm attaching a patch implementing these methods. I plan to use doit_in_builddir_noerror in maven-debian-helper [1] where errors often occur when invoking 'mvn clean', thus preventing the completion of the clean target. Thank you, Emmanuel Bourg [1] https://sources.debian.net/src/maven-debian-helper/1.6.11/share/perl/maven.pm/#L115 --- >From 2acd9c295fa4291da041c05d890025d5a079371b Mon Sep 17 00:00:00 2001 From: Emmanuel Bourg <[email protected]> Date: Wed, 20 May 2015 14:35:08 +0200 Subject: [PATCH] Add doit_in_sourcedir_noerror and doit_in_builddir_noerror in Buildsystem.pm --- Debian/Debhelper/Buildsystem.pm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Debian/Debhelper/Buildsystem.pm b/Debian/Debhelper/Buildsystem.pm index 3043c79..7f5819f 100644 --- a/Debian/Debhelper/Buildsystem.pm +++ b/Debian/Debhelper/Buildsystem.pm @@ -310,6 +310,23 @@ sub doit_in_sourcedir { return 1; } +# Changes working directory to the source directory (if needed), +# calls print_and_doit(@_) and changes working directory back to the +# top directory. Errors are ignored. +sub doit_in_sourcedir_noerror { + my $this=shift; + if ($this->get_sourcedir() ne '.') { + my $sourcedir = $this->get_sourcedir(); + $this->_cd($sourcedir); + print_and_doit_noerror(@_); + $this->_cd($this->_rel2rel($this->{cwd}, $sourcedir)); + } + else { + print_and_doit_noerror(@_); + } + return 1; +} + # Changes working directory to the build directory (if needed), # calls print_and_doit(@_) and changes working directory back to the # top directory. @@ -327,6 +344,23 @@ sub doit_in_builddir { return 1; } +# Changes working directory to the build directory (if needed), +# calls print_and_doit(@_) and changes working directory back to the +# top directory. Errors are ignored. +sub doit_in_builddir_noerror { + my $this=shift; + if ($this->get_buildpath() ne '.') { + my $buildpath = $this->get_buildpath(); + $this->_cd($buildpath); + print_and_doit_noerror(@_); + $this->_cd($this->_rel2rel($this->{cwd}, $buildpath)); + } + else { + print_and_doit_noerror(@_); + } + return 1; +} + # In case of out of source tree building, whole build directory # gets wiped (if it exists) and 1 is returned. If build directory # had 2 or more levels, empty parent directories are also deleted. -- 2.1.4 -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

