diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2016-04-03 17:22:35 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2016-04-03 17:22:57 -0700 |
commit | 0b4eedcfee92f82204111517e7c4639d1f253631 (patch) | |
tree | 221cdcc2768e995c860a7946265a7d675b11ee35 /lib/DhMakeELPA | |
parent | 220b430410f81c7f27703ceec7e472546260ca2b (diff) |
extract_description subroutine
This completes debian/control generation.
Diffstat (limited to 'lib/DhMakeELPA')
-rw-r--r-- | lib/DhMakeELPA/Command/Packaging.pm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/DhMakeELPA/Command/Packaging.pm b/lib/DhMakeELPA/Command/Packaging.pm index 11c6da6..41a50c2 100644 --- a/lib/DhMakeELPA/Command/Packaging.pm +++ b/lib/DhMakeELPA/Command/Packaging.pm @@ -135,4 +135,40 @@ sub fill_vcs { } } +sub extract_description { + my ($self, $el_file) = @_; + my ($short_desc, $long_desc); + my $pkg_file = $el_file =~ s/\.el/-pkg.el/r; + + if ( -e $pkg_file ) { + my $fh = $self->_file_r($pkg_file); + my $lines = join("", $fh->getlines); + $lines =~ s/\n//g; + $short_desc = $lines =~ s/.*\(define-package\s+"[^"]+"\s+"[^"]+"\s+"([^"]+)".*/$1/rg; + $fh->close; + } + + if ( -e $el_file ) { # helm-core.el doesn't exist, though helm-core-pkg.el does + my $fh = $self->_file_r($el_file); + unless (defined $short_desc) { + my $line = $fh->getline; + $short_desc = $line =~ s/^.*--- (.*)$/$1/r =~ s/-\*- .* -\*-//r; + } + my $lines = join("", $fh->getlines); + if ( $lines =~ /;;; Commentary:/ ) { + $lines =~ /.*Commentary:\n\n(.*?)\n\n;;; Code:.*/s; + $long_desc = $1 =~ s/;; //rsg; + } + $fh->close; + } + + unless (defined $short_desc) { + $short_desc = "couldn't determine short description" + } + unless (defined $long_desc) { + $long_desc = "couldn't determine long description" + } + return ($short_desc, $long_desc); +} + 1; |