Skip to content

fon.pl: small changes to fon.sh #172

Merged
merged 1 commit into from
Apr 23, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 15 additions & 17 deletions fon/fon.pl
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
use Encode;
use utf8;

binmode(STDOUT, ":utf8");
binmode( STDOUT, ":utf8" );

my %multichar;
my %escapechar;

my $cache = 'ldap.dump';
my $cache = 'ldap.dump';
my $USECACHE = 0;

my %L;
Expand All @@ -21,23 +21,22 @@

get_ldap_addressbook( \%L );

for my $l ( sort { lc( $L{$a}->{sn} ) cmp lc( $L{$b}->{sn} ) } keys %L ) {
for my $l ( sort { lc s2a( $L{$a}->{sn}[0] ) cmp lc s2a( $L{$b}->{sn}[0] ) } keys %L ) {
if ( match_entry( $SRCH, $L{$l} ) >= 0 ) {
push_entry( $L{$l} );
}
}

my @order = ( 'name', 'room', 'fone', 'mail' );

exit unless exists($O{name});
exit unless exists( $O{name} );

my $e = scalar( @{ $O{name} } ) - 1 ;
my $e = scalar( @{ $O{name} } ) - 1;

for my $i ( 0 .. $e ) {

for my $k (@order) {
printf "%-*s ",$M{$k}, $O{$k}[$i];
# print substr( $O{$k}[$i] . ( '.' x $M{$k}) , 0, $M{$k} ) . ' ';
printf "%-*s ", $O{ $k . '_l' }, $O{$k}[$i];
}
printf "\n";

Expand All @@ -63,7 +62,7 @@ sub simplify {
}

sub len {
return length(Encode::encode_utf8(shift));
return length( Encode::encode_utf8(shift) );
}

sub push_entry {
Expand All @@ -73,23 +72,22 @@ sub push_entry {
$t = join( '/', @{ $e->{sn} } ) . ", " . join( '/', @{ $e->{givenName} } );
$l = len($t);
push @{ $O{name} }, $t;
$l > ( $M{name} || 0 ) and $M{name} = $l;
$l > ( $O{name_l} || 0 ) and $O{name_l} = $l;


$t = join( '/', map {s/\(.*?\)|Betriebsarztraum|\s+//g;$_} @{ $e->{roomNumber} } );
$t = join( '/', map { s/\(.*?\)|Betriebsarztraum|\s+//g; $_ } @{ $e->{roomNumber} } );
$l = len($t);
push @{ $O{room} }, $t;
$l > ( $M{room} || 0 ) and $M{room} = $l;
$l > ( $O{room_l} || 0 ) and $O{room_l} = $l;

$t = join( '/', map {s/\(.*?\)|\s+//g;s/\+49/0/;$_} @{ $e->{telephoneNumber} } );
$t = join( '/', map { s/\(.*?\)|\s+//g; s/\+49/0/; $_ } @{ $e->{telephoneNumber} } );
$l = len($t);
push @{ $O{fone} }, $t;
$l > ( $M{fone} || 0 ) and $M{fone} = $l;
$l > ( $O{fone_l} || 0 ) and $O{fone_l} = $l;

$t = join( ', ', map {s/molgen\.mpg\.de//g;$_} @{ $e->{mail} } );
$t = join( ', ', map { s/molgen\.mpg\.de//g; $_ } @{ $e->{mail} } );
$l = len($t);
push @{ $O{mail} }, $t;
$l > ( $M{mail} || 0 ) and $M{mail} = $l;
$l > ( $O{mail_l} || 0 ) and $O{mail_l} = $l;
}

sub exec_ldapsearch {
Expand Down Expand Up @@ -144,7 +142,7 @@ sub get_ldap_addressbook {
}
map {
if ( my ( $op, $v ) = $l =~ m{^$_(::?)\s*(.+)} ) {
$op eq '::' and $v = decode('utf8',decode_base64($v));
$op eq '::' and $v = decode( 'utf8', decode_base64($v) );
die "$uid -> $_\n" unless defined($v);
push @{ $$L{$uid}->{$_} }, $v;
}
Expand Down