summaryrefslogtreecommitdiff
path: root/Debian/Dgit.pm
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2017-02-03 21:54:56 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2017-07-18 22:08:43 +0100
commit4523f77bba9b97925030bcf641584a4a74819178 (patch)
tree4c0df3f1195bea6dc17d8e7e63eeeecd85123c0b /Debian/Dgit.pm
parentf5c0d33ede8a4c8f1a45ecb57923d66bc694903d (diff)
Dgit.pm: runcmd: Break out from dgit
Move runcmd into Dgit.pm. We need to change dgit-repos-server too, but luckily its definition is essentially equivalent. No functional change to dgit. dgit-repos-server now prints somewhat better error messages when subprocesses fail. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'Debian/Dgit.pm')
-rw-r--r--Debian/Dgit.pm8
1 files changed, 7 insertions, 1 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index dcecbd1..5b5591d 100644
--- a/Debian/Dgit.pm
+++ b/Debian/Dgit.pm
@@ -45,7 +45,7 @@ BEGIN {
fail ensuredir executable_on_path
waitstatusmsg failedcmd_waitstatus
failedcmd_report_cmd failedcmd
- cmdoutput cmdoutput_errok
+ runcmd cmdoutput cmdoutput_errok
git_rev_parse git_cat_file
git_get_ref git_for_each_ref
git_for_each_tag_referring is_fast_fwd
@@ -276,6 +276,12 @@ sub failedcmd {
fail failedcmd_waitstatus();
}
+sub runcmd {
+ debugcmd "+",@_;
+ $!=0; $?=-1;
+ failedcmd @_ if system @_;
+}
+
sub cmdoutput_errok {
confess Dumper(\@_)." ?" if grep { !defined } @_;
debugcmd "|",@_;