#!/usr/bin/perl # $Id: changelog2doc.pl,v 1.3 2010/10/31 13:25:47 fabiankeil Exp $ # $Source: /cvsroot/ijbswa/current/utils/changelog2doc.pl,v $ # Filter to parse the ChangeLog and translate the changes for # the most recent version into something that looks like markup # for the documentation but still needs fine-tuning. use strict; use warnings; my @entries; sub read_entries() { my $section_reached = 0; my $i = -1; while (<>) { if (/^\*{3} /) { last if $section_reached; $section_reached = 1; next; } next unless $section_reached; next if /^\s*$/; if (/^-/) { $i++; $entries[$i]{description} = ''; } s@^-?\s*@@; $entries[$i]{description} .= $_; } print "Parsed " . @entries . " entries.\n"; } sub create_listitem_markup($) { my $entry = shift; my $description = $entry->{description}; chomp $description; $description =~ s@\n@\n @g; return " \n" . " \n" . " " . $description . "\n" . " \n" . " \n"; } sub generate_markup() { my $markup = ''; $markup .= "\n" . " \n"; foreach my $entry (@entries) { $markup .= create_listitem_markup(\%{$entry}); } $markup .= " \n" . "\n"; print $markup; } sub main () { read_entries(); generate_markup(); } main();