diff options
Diffstat (limited to 'dh_elpa')
-rwxr-xr-x | dh_elpa | 29 |
1 files changed, 28 insertions, 1 deletions
@@ -1,5 +1,9 @@ #!/usr/bin/perl +use strict; +use Cwd qw{ getcwd }; +use File::Temp qw{ tempdir }; + use Debian::Debhelper::Dh_Lib; init(); @@ -12,6 +16,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) { 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, "."); } @@ -20,10 +28,29 @@ foreach my $package (@{$dh{DOPACKAGES}}) { push @files, @ARGV; } + my $pkg_file; if (scalar(@files) == 1) { $pkg_file=$files[0]; } else { - die("multifile packages unimplimented"); + # 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}, |