| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | #!/usr/bin/perl# Copyright (C) 2016 Martin Thomas <mtdev@hamtam.de># LGPL version 2 or later.use strict;use warnings;use IO::Dir;use File::Find qw(find);use Encode::Guess;my ($dir, $directory, $f, $w, $tmp);my (@files, @dirs, $file, $filename);my $header;my $files;my $encoding;my @copyright;my @copyrightout;my @uniqcpr;my @output;my $i;$encoding = ":encoding(UTF-8)";$encoding = "";$directory="./";$header  = "Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/\n";$header .= "Upstream-Name: uclibc-ng\n";$header .= 'Upstream-Contact: Waldemar Brodkorb <wbx@uclibc-ng.org>'."\n";$header .= "Source: git://uclibc-ng.org/git/uclibc-ng\n\n";# my $emailregex='\b[[:alnum:]._%+-]+@[[:alnum:].-]+.[[:alpha:]]{2,6}\b';sub list_dirs {  my @dirs = @_;  my @files;  find({ wanted => sub { push @files, $_ } , no_chdir => 1 }, @dirs);  return @files;}@files=list_dirs($directory);foreach $file (@files) {  if ( -f $file ){#     $encoding = guess_encoding($file);    open(my $fh, "< $encoding", $file)      or die "Could not open file '$file' $!";    while (my $row = <$fh>) {      chomp $row;      if ($row =~ m/[Cc]opyright / )      {        $row =~ s/^[\s\/\*#!;.\"\\]*//; #remove leading        $row =~ s/\s+$//;               #remove trailing        push @copyright, { file => $file, raw => $row};        last;      }    }    close $fh  }}#sort raw@copyrightout = sort { $a->{raw} cmp $b->{raw} } @copyright;$tmp="";$i=-1;foreach (@copyrightout) {  if ( $tmp eq $_->{'raw'} )  {    $output[$i]{"files"} .= "\n"."       $_->{'file'}";  }  else  {    ++$i;    $output[$i]{"header"} .= "Copyright: $_->{'raw'}\n";    $output[$i]{"header"} .= "License: GNU Lesser General Public License 2.1\n";    $output[$i]{"files"} .= "Files: ".$_->{'file'};  }  $tmp=$_->{'raw'};}print "$header";$i=0;foreach (@output) {  print "$output[$i]->{'files'}\n";  print "$output[$i]->{'header'}\n";  ++$i;}
 |