diff options
Diffstat (limited to 'dh_elpa')
-rwxr-xr-x | dh_elpa | 30 |
1 files changed, 28 insertions, 2 deletions
@@ -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); |