#!/usr/bin/perl use List::MoreUtils qw(uniq nsort_by); # four files: # - der: input file, unsorted list of dev userids, may contain duplicates, # generated by LaTeX # - ded: database of developers, format # * developer user id # * real name (unicode, american convention Firstname X. Lastname) # * link (wiki, homepage, ...) # - deg: output file, LaTeX fragment that can be sourced # Main code start # Read the list of devs referenced in the LaTeX file. open my $der, '<', "decisions.der"; my @derlist = <$der>; close $der; chomp @derlist; my @developers=uniq nsort_by { $_ } @derlist; # Read the database open my $ded, '<', "decisions.ded"; my $devname={}; my $devlink={}; while (1) { defined ( my $uid=<$ded> ) or last; defined ( my $name=<$ded> ) or last; defined ( my $link=<$ded> ) or last; chomp $uid; chomp $name; chomp $link; $devname{$uid}=$name; print "name of $uid is $name\n"; $devlink{$uid}=$link; }; close $ded; # Write out the TeX input file open my $deg, '>', "decisions.deg"; print $deg '\renewcommand{\devname}[1]{%'."\n"; foreach(@developers) { my $cur=$_; print $deg '\ifthenelse{\equal{#1}{'.$cur.'}}{'.$devname{$cur}.'}{}%'."\n"; }; print $deg '}'."\n"; print $deg '\renewcommand{\devlink}[1]{%'."\n"; foreach(@developers) { my $cur=$_; print $deg '\ifthenelse{\equal{#1}{'.$cur.'}}{'.$devlink{$cur}.'}{}%'."\n"; }; print $deg '}'."\n"; close $deg;