summaryrefslogtreecommitdiff
path: root/lib/DhMakeELPA
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2016-04-03 17:22:35 -0700
committerSean Whitton <spwhitton@spwhitton.name>2016-04-03 17:22:57 -0700
commit0b4eedcfee92f82204111517e7c4639d1f253631 (patch)
tree221cdcc2768e995c860a7946265a7d675b11ee35 /lib/DhMakeELPA
parent220b430410f81c7f27703ceec7e472546260ca2b (diff)
extract_description subroutine
This completes debian/control generation.
Diffstat (limited to 'lib/DhMakeELPA')
-rw-r--r--lib/DhMakeELPA/Command/Packaging.pm36
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;