summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'decisions/makedevs')
-rwxr-xr-xdecisions/makedevs71
1 files changed, 71 insertions, 0 deletions
diff --git a/decisions/makedevs b/decisions/makedevs
new file mode 100755
index 0000000..51e4c72
--- /dev/null
+++ b/decisions/makedevs
@@ -0,0 +1,71 @@
+#!/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;