1 |
dpavlin |
1.1 |
#!/usr/local/bin/perl -w |
2 |
|
|
|
3 |
|
|
use Net::LDAP::LDIF; |
4 |
|
|
|
5 |
|
|
die "Usage: $0 [ldif]" if (!defined($ARGV[0])); |
6 |
|
|
|
7 |
|
|
$ldif = Net::LDAP::LDIF->new( "$ARGV[0]", "r" ); |
8 |
|
|
|
9 |
|
|
print "digraph ldif {\n"; |
10 |
|
|
|
11 |
|
|
while( $entry = $ldif->read() ) { |
12 |
|
|
foreach my $attr ($entry->attributes) { |
13 |
|
|
print STDERR join("\n\t",$attr, $entry->get($attr)),"\n"; |
14 |
|
|
} |
15 |
|
|
print STDERR "--------------\n"; |
16 |
|
|
@dn=$entry->get('objectclass'); |
17 |
|
|
undef $lval; # last value |
18 |
|
|
foreach $val (@dn) { |
19 |
|
|
next if (val =~ m,^ns,); |
20 |
|
|
if (!defined($exist{$val})) { |
21 |
|
|
$exist{$val}++; |
22 |
|
|
} |
23 |
|
|
if ($lval && $conn{lc($val)} ne lc($lval)) { |
24 |
|
|
print "\"$val\" -> \"$lval\";\n"; |
25 |
|
|
$conn{lc($val)}=lc($lval); |
26 |
|
|
} |
27 |
|
|
$lval = $val; |
28 |
|
|
} |
29 |
|
|
} |
30 |
|
|
|
31 |
|
|
print "}\n"; |
32 |
|
|
|
33 |
|
|
$ldif->done(); |