--- ldif2dot 2000/05/26 10:41:38 1.1 +++ ldif2dot 2000/05/26 16:19:19 1.2 @@ -1,11 +1,28 @@ #!/usr/local/bin/perl -w +undef $filter; + +sub filter { + my ($dn) = @_; + return $dn =~ /o=agrokor.hr/i && $dn !~ /o=NetscapeRoot/; +} + print "digraph ldif {\n"; -while(<>) { - chomp; - if (/^dn: *(.*)/) { - @dn=split(/, */,$1); +$line=<>; chomp $line; + +while($nline=<>) { + chomp $nline; + while ($nline=~/^ (.*)$/) { + $line.=$1; + $nline=<>; chomp $nline; + } +# print STDERR "$line\n\n"; + if ($line =~ /^dn: *(.*)$/ && filter($1)) { + my $dn=$1; + $dn=~s/"//g; # nuke quotes + print STDERR "$dn\n"; + @dn=split(/, */,$dn); undef $lval; # last value foreach (@dn) { ($el,$val) = split (/= */,$_); @@ -13,13 +30,14 @@ if (!defined($exist{$val})) { $exist{$val}++; } - if ($lval && $conn{$val} ne $lval) { + if ($lval && !defined($conn{"$val,$lval"})) { print "\"$val\" -> \"$lval\";\n"; - $conn{$val}=$lval; + $conn{"$val,$lval"}++; } $lval = $val; } } + $line=$nline; } print "}\n";