#!/usr/bin/env dag %t_by_name by_name Module ---> Readme Changes License Lib* { my $v = my_version($_n); $_n =~ s/[\d\.\-]+$//; my $orig = $_n; $_n =~ s/[^\w]+/_/g; $_n = lc $_n; create_dot($_n, $::tree); open F, ">$_n.html"; print F my_js()."

$orig


Version: $v

".$_[1].$_[2].$_[3]; print F "
"; close F; }; Lib { my ($_,$x) = split /\/*lib\/*/, $_p; #$x =~ s/\.pm$//; my @a = split /\/+/, $x; my $last = pop @a; $::tree->{$last} = [reverse @a]; }; Readme { $_c=~s/\n/
/g; "

$_t

" }; Changes { $_c=~s/\n/
/g; "

$_t

" }; License { $_c=~s/\n/
/g; "

$_t

" }; %% use GraphViz; my $tree = {}; sub by_name { my $path = shift; $path =~ m/\w+\-\w+\-[\.\d]+\/*$/i and return 'Module'; $path =~ m/\/+readme$/i and return 'Readme'; $path =~ m/\/+changes$/i and return 'Changes'; $path =~ m/\/+license$/i and return 'License'; $path =~ m/\.pm$/i and return 'Lib'; #$path =~ m/\/+t$/ and return 't'; #$path =~ m/\/+examples$/ and return 'examples'; } sub my_js { my $css=<<'EOF'; EOF } sub my_version { my $name = shift; $name =~ m/([\d]+[\d\.\-]*)/; my $version = $1; } sub create_dot { my ($n,$tree) = @_; my $g = GraphViz->new(); my %cnt; foreach my $i (keys %$tree) { if ($i =~ m/\.pm$/) { $g->add_node("$i",'style'=>'dashed'); } else { $g->add_node("$i"); } my $last = $i; foreach my $j (@{$tree->{$i}}) { $g->add_edge($j => $last) unless $cnt{"$j $last"}; $cnt{"$j $last"}++; $last = $j; } } $g->as_png("$n.png"); }