summaryrefslogtreecommitdiff
path: root/dh_elpa
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2015-07-13 07:49:48 +0200
committerDavid Bremner <david@tethera.net>2015-07-13 07:49:48 +0200
commit219aed1f1467b5b2d509fd8d67564b072af69779 (patch)
tree138ac9940540f2254785082cd20b4c9ce5ac666f /dh_elpa
parenteddce391e95660a134a3c993421826de23f49ccc (diff)
add function to only print command output on error.
A refined version of this should perhaps be pushed into debhelper.
Diffstat (limited to 'dh_elpa')
-rwxr-xr-xdh_elpa30
1 files changed, 28 insertions, 2 deletions
diff --git a/dh_elpa b/dh_elpa
index be68a1f..562d7e4 100755
--- a/dh_elpa
+++ b/dh_elpa
@@ -2,12 +2,38 @@
use strict;
use Cwd qw{ getcwd };
-use File::Temp qw{ tempdir };
+use File::Temp qw{ tempdir tempfile};
+use File::Slurp;
+use IO::Handle;
use Debian::Debhelper::Dh_Lib;
init();
+sub doit_quietly {
+ my ($handle,$tmpfile) = tempfile(UNLINK=>1);
+ my $exitcode;
+
+ verbose_print(escape_shell(@_));
+ open (CPERR,">&STDERR") or die "$!";
+ open (CPOUT,">&STDOUT") or die "$!";
+ STDOUT->fdopen($handle,'w');
+ STDERR->fdopen($handle,'w');
+ my $ret=doit_noerror(@_);
+ STDOUT->fdopen(\*CPOUT,'w');
+ STDERR->fdopen(\*CPERR,'w');
+
+ if (!$ret){
+ $exitcode=$?;
+ close($handle) or die "$!";
+ my $log = read_file ($tmpfile);
+ print $log;
+ my $command=join(" ",@_);
+ error("$command returned exit code ".($exitcode >> 8));
+ }
+
+}
+
my $elpadir="/usr/share/emacs/site-lisp/elpa";
foreach my $package (@{$dh{DOPACKAGES}}) {
@@ -53,7 +79,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
chdir $cwd or die "$!";
}
- doit(qw{emacs -batch -Q -l package},
+ doit_quietly(qw{emacs -batch -Q -l package},
'--eval',"(add-to-list 'package-directory-list \"$elpadir\")",
qw{-f package-initialize -l dh-elpa.el},
qw{-f dhelpa-batch-install-file}, "$tmp/$elpadir", $pkg_file);