From 2506350d81809e362463de639f22e63d223cf51f Mon Sep 17 00:00:00 2001 From: sebastid Date: Mon, 27 Jun 2005 11:21:41 +0000 Subject: [PATCH] shorne's TODO parser SVN revision: 15543 --- data/other/parse_todo.pl | 76 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 data/other/parse_todo.pl diff --git a/data/other/parse_todo.pl b/data/other/parse_todo.pl new file mode 100644 index 000000000..b1a09a99a --- /dev/null +++ b/data/other/parse_todo.pl @@ -0,0 +1,76 @@ +#!/usr/bin/perl + +my $TODO; + +my $new_item = 0; +my $in_body = 0; +my $is_title = 0; + +# this hash is like this +# +# hash>> +# +# [title1] -> [ (item1, asignee1), (item2, asignee2) ] +# [title2] -> [ (item1, asignee1) ] +# +my %todo_hash; +my $title; +my $item = {}; + +my $item_count; +my $total_item_count = 0; + +while(<>) { + chomp; + + if(/\[\[\[/) { + $in_body = 1; + } elsif (/\]\]\]/) { + $in_body = 0; + } elsif (/^---.*---$/) { + if ($in_body) { + if($is_title) { + $is_title = 0; + } else { + $is_title = 1; + } + } + } elsif (/$\\* .*/) { + if ($in_body ) { + $total_item_count++; + push(@{$todo_hash{$title}}, $item); + $item = {}; + $item->{'asignee'} = "Unknown"; + $item->{'task'} = $_ ; + if(/<(.*)>/) { + $item->{'asignee'} = $1; + } + } + } else { + if ($in_body) { + if($is_title) { + $title = $_; + } else { + $item->{'task'} = $item->{'task'} . $_ ; + if(/<(.*)>/) { + $item->{'asignee'} = $1; + } + } + } + } + +} + +for $title ( keys %todo_hash ) { + + print "

" . $title . "

\n"; + + print " \n"; + print " \n"; + for $item ( @{$todo_hash{$title}} ) { + my $asignee = $item->{'asignee'}; + my $task = $item->{'task'}; + print " \n"; + } + print "
AsigneeTask
$asignee$task
\n"; +}