Cosmetizare ldap filter

Dat fiind ca zilele astea ma joc cu ldap si fac tot felul de filtre imbarligate, e nevoie sa le aranjez frumos in scripturi pt. readability. Am furat de pe perlmonks un scriptan care le aranjeaza frumos (probabil exista si macrouri in vim, dar in cazul de fata ma ajuta mai mult perl).

Here you go:

#! /usr/bin/perl -slw
use strict;
my $tw = 2 ; # "tab" width
( my $input = do{ local $/; <> } ) =~ tr[\n][]d;
my $tab = 0;
$input =~ s[([()])]{
    $tab-- if $1 eq ')';
    my $modified = "\n" . ( " " x $tw x $tab ) . $1;
    $tab++ if $1 eq '(';
    $modified;
}ge;
$input =~ s[\n\s+\)][)]g;
print $input;

Si exemplu:

petre@kobold:~$ perl/ldap_beautify.pl << EOF
> (& (|(&(objectClass=user)(objectCategory=person)) (objectClass=groupOfNames)
> (objectClass=msExchDynamicDistributionList)) (proxyAddresses=*)
> (!(cn=*SystemMailbox*)) )
> EOF
(&
  (|
    (&
      (objectClass=user)
      (objectCategory=person))
    (objectClass=groupOfNames)
    (objectClass=msExchDynamicDistributionList))
  (proxyAddresses=*)
  (!
    (cn=*SystemMailbox*))
)

Credit http://www.perlmonks.org/?node_id=522460

PS: filtrul ajuta la extragerea destinatiilor valide pe un Exchange: se cauta atributul proxyAddresses, se aleg cele care incep cu /^(SMTP|smtp):/ si se scoate inceputul.

Note to self: ca sa dezactivezi smart quotes in wordpress, trebuie sa pui remove_filter('the_content', 'wptexturize'); in functions.php al temei (sper sa nu mai am nevoie).

Comments are closed.