1 |
#!/usr/local/bin/perl -w |
#!/usr/local/bin/perl -w |
2 |
|
|
3 |
|
undef $filter; |
4 |
|
|
5 |
|
sub filter { |
6 |
|
my ($dn) = @_; |
7 |
|
return $dn =~ /o=agrokor.hr/i && $dn !~ /o=NetscapeRoot/; |
8 |
|
} |
9 |
|
|
10 |
print "digraph ldif {\n"; |
print "digraph ldif {\n"; |
11 |
|
|
12 |
while(<>) { |
$line=<>; chomp $line; |
13 |
chomp; |
|
14 |
if (/^dn: *(.*)/) { |
while($nline=<>) { |
15 |
@dn=split(/, */,$1); |
chomp $nline; |
16 |
|
while ($nline=~/^ (.*)$/) { |
17 |
|
$line.=$1; |
18 |
|
$nline=<>; chomp $nline; |
19 |
|
} |
20 |
|
# print STDERR "$line\n\n"; |
21 |
|
if ($line =~ /^dn: *(.*)$/ && filter($1)) { |
22 |
|
my $dn=$1; |
23 |
|
$dn=~s/"//g; # nuke quotes |
24 |
|
print STDERR "$dn\n"; |
25 |
|
@dn=split(/, */,$dn); |
26 |
undef $lval; # last value |
undef $lval; # last value |
27 |
foreach (@dn) { |
foreach (@dn) { |
28 |
($el,$val) = split (/= */,$_); |
($el,$val) = split (/= */,$_); |
30 |
if (!defined($exist{$val})) { |
if (!defined($exist{$val})) { |
31 |
$exist{$val}++; |
$exist{$val}++; |
32 |
} |
} |
33 |
if ($lval && $conn{$val} ne $lval) { |
if ($lval && !defined($conn{"$val,$lval"})) { |
34 |
print "\"$val\" -> \"$lval\";\n"; |
print "\"$val\" -> \"$lval\";\n"; |
35 |
$conn{$val}=$lval; |
$conn{"$val,$lval"}++; |
36 |
} |
} |
37 |
$lval = $val; |
$lval = $val; |
38 |
} |
} |
39 |
} |
} |
40 |
|
$line=$nline; |
41 |
} |
} |
42 |
|
|
43 |
print "}\n"; |
print "}\n"; |