#!/usr/bin/perl use strict; use warnings; use XML::Simple; use utf8::all; use autodie; open my $infh, '<', 'debian/copyright.in'; my $template; { local $/ = undef; $template = <$infh>; } close $infh; my $list; foreach my $file ( glob("*.csl") ) { my $csl = XMLin( $file, KeyAttr => { author => "+name", contributor => "+name" }, ForceArray => [ "author", "contributor" ] ); my $authors = $csl->{info}->{author}; my $contributors = $csl->{info}->{contributor} unless $authors; # only if we have no author(s) my $updated = $csl->{info}->{updated}; my $year = $1 if $updated =~ m/^(\d{4}).+/; my $copyright; foreach my $author ( sort keys %{$authors} ) { $copyright .= " $year,"; $copyright .= ' ' . $authors->{$author}->{name}; $copyright .= " <" . $authors->{$author}->{email} . ">" if $authors->{$author}->{email}; $copyright .= "\n"; } foreach my $contributor ( sort keys %{$contributors} ) { $copyright .= " $year,"; $copyright .= ' ' . $contributors->{$contributor}->{name}; $copyright .= " <" . $contributors->{$contributor}->{email} . ">" if $contributors->{$contributor}->{email}; $copyright .= "\n"; } if ($copyright) { $list .= "Files: $file\n" . "Copyright:$copyright" . "License: CC-BY-SA-3.0\n\n"; } } $template =~ s/#LIST#\n\n/$list/; open my $outfh, '>', 'debian/copyright'; print $outfh $template; close $outfh;