[devscripts] 01/02: licensecheck: parse tail when no info is found in header

dod at debian.org dod at debian.org
Sun Dec 6 20:28:14 UTC 2015


This is an automated email from the git hooks/post-receive script.

dod pushed a commit to branch master
in repository devscripts.

commit 5b3619399205770102866fe456c4fe2e53f7e8e7
Author: Dominique Dumont <dod at debian.org>
Date:   Sun Dec 6 21:19:22 2015 +0100

    licensecheck: parse tail when no info is found in header
---
 scripts/licensecheck.pl | 38 +++++++++++++++++++++++++-------------
 1 file changed, 25 insertions(+), 13 deletions(-)

diff --git a/scripts/licensecheck.pl b/scripts/licensecheck.pl
index 3ba7ebd..3a81475 100755
--- a/scripts/licensecheck.pl
+++ b/scripts/licensecheck.pl
@@ -222,6 +222,7 @@ my %OPT=(
 );
 
 my $def_lines = 60;
+my $def_tail = 5000; # roughly 60 lines of 80 chars
 
 # Read configuration files and then command line
 # This is boilerplate
@@ -335,7 +336,6 @@ while (@files) {
     my $content = '';
     my $copyright_match;
     my $copyright = '';
-    my $license = '';
 
     my $st = stat $file;
 
@@ -348,24 +348,36 @@ while (@files) {
 	last if ($fh->input_line_number > $OPT{'lines'});
 	$content .= $line;
     }
-    my $position = $fh->tell; # See IO::Seekable
-
-    my $jump = $st->size - 4800; # yeah, that's 60 x 80 chars
-    $jump = $position if $jump < $position;
-
-    if ( $jump < $st->size) {
-	$fh->seek($jump, SEEK_SET) ; # also IO::Seekable
-	$content .= join('',$fh->getlines);
-    }
-    $fh->close;
 
     my %copyrights = extract_copyright($content);
-    $copyright = join(" / ", reverse sort values %copyrights);
 
     print qq(----- $file header -----\n$content----- end header -----\n\n)
 	if $OPT{'verbose'};
 
-    $license = parselicense(clean_cruft_and_spaces(clean_comments($content)));
+    my $license = parselicense(clean_cruft_and_spaces(clean_comments($content)));
+    $copyright = join(" / ", reverse sort values %copyrights);
+
+    if ( not $copyright and $license eq 'UNKNOWN') {
+	my $position = $fh->tell; # See IO::Seekable
+	my $tail_size = $def_tail;
+	my $jump = $st->size - $tail_size;
+	$jump = $position if $jump < $position;
+
+	my $tail ;
+	if ( $tail_size and $jump < $st->size) {
+	    $fh->seek($jump, SEEK_SET) ; # also IO::Seekable
+	    $tail .= join('',$fh->getlines);
+	}
+
+	print qq(----- $file tail -----\n$tail----- end tail -----\n\n)
+	    if $OPT{'verbose'};
+
+	%copyrights = extract_copyright($tail);
+	$license = parselicense(clean_cruft_and_spaces(clean_comments($tail)));
+	$copyright = join(" / ", reverse sort values %copyrights);
+    }
+
+    $fh->close;
 
     if ($OPT{'machine'}) {
 	print "$file\t$license";

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git



More information about the devscripts-devel mailing list