#!/usr/bin/perl use strict; use Cwd qw{ getcwd }; use File::Temp qw{ tempdir }; use Debian::Debhelper::Dh_Lib; init(); my $elpadir="/usr/share/emacs/site-lisp/elpa"; foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); my $file=pkgfile($package,"elpa"); my @files; # Call isnative because it sets $dh{VERSION} # as a side effect. isnative($package); if ($file) { @files=filearray($file, "."); } if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) { push @files, @ARGV; } my $pkg_file; if (scalar(@files) == 1) { $pkg_file=$files[0]; } else { # TODO: add CLEANUP when somewhat debugged. my $tempdir = tempdir(); my $version = $dh{VERSION} or die "version not found!"; $version =~ s/-[^-]+//; # strip Debian version my $pkg_dir = "$package-$version"; $pkg_file = "$tempdir/$pkg_dir.tar"; mkdir "$tempdir/$pkg_dir" or die "$!"; # copy files into tempdir, flattening hierarchy # TODO: do this more correctly foreach my $el_file (@files) { doit("cp", "-a", $el_file, "$tempdir/$pkg_dir"); } my $cwd = getcwd(); chdir $tempdir or die "$!"; doit("tar","cf",$pkg_file,$pkg_dir); chdir $cwd or die "$!"; } doit(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); }