<%PERL>
my @found;
File::Find::find(
{ untaint => 1,
wanted => sub {
return unless /(\w+)\.(?:pm|pod)$/;
my $name = $File::Find::name;
$name =~ s/.*lib\b.//;
$name =~ s!\.(?:pm|pod)!!i;
$name =~ s!\W!::!g;
push @found, $name;
},follow => ($^O ne 'MSWin32') },
Jifty::Util->app_root ."/lib",
);
File::Find::find(
{ untaint => 1,
wanted => sub {
return unless $File::Find::name =~ /^(?:.*?)(Jifty.*?\.(?:pm|pod))$/;
my $name = $1;
$name =~ s/.*lib\b.//;
$name =~ s!\.(?:pm|pod)!!i;
$name =~ s!\/!::!g;
push @found, $name;
},follow => ($^O ne 'MSWin32') },
Jifty::Util->jifty_root,
);
my $indent = 0;
my $prev = '';
foreach my $file (sort @found) {
my ($parent, $name) = ($1, $2) if $file =~ /(?:(.*)::)?(\w+)$/;
$parent = '' unless defined $parent;
if ($file =~ /^$prev\::(.*)/) {
my $foo = $1;
while ($foo =~ s/(\w+):://) {
$indent++;
$m->print((' ' x $indent));
$m->print("$1
");
}
$indent++;
} elsif ($prev !~ /^$parent\::/) {
$indent = 0 unless length $parent;
while ($parent =~ s/(\w+)//) {
next if $prev =~ s/\b$1:://;
while ($prev =~ s/:://) {
$indent--;
}
$m->print((' ' x $indent));
$m->print("$1
");
$indent++;
}
} elsif ($prev =~ /^$parent\::(.*::)/) {
my $foo = $1;
while ($foo =~ s/:://) {
$indent--;
}
}
$m->print( ( ' ' x $indent )
. '' . $name
. '
' ."\n" );
$prev = $file;
}
%PERL>