diff options
author | David Bremner <david@tethera.net> | 2015-07-12 08:54:07 +0200 |
---|---|---|
committer | David Bremner <david@tethera.net> | 2015-07-12 22:45:14 +0200 |
commit | 321c4fb956e7bed1feb218f8266aeb45d4441a06 (patch) | |
tree | 422e1a1c6c0dc7f5e0e67478eedde6fec011d49e /dh_elpa | |
parent | 054fd3bdac9847a4008cc9ec447a83e5fb83dd55 (diff) |
Initial support for multiple-file packages
Still no byte compilation, and grotesque amounts of output
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}, |