convert
changeset 2 602463764ee2
equal deleted inserted replaced
1:b4288a997501 2:602463764ee2
       
     1 #! /usr/bin/perl
       
     2 # according
       
     3 # http://www.zytrax.com/books/ldap/ch6/slapd-config.html#use-schemas
       
     4 use 5.010;
       
     5 use strict;
       
     6 use warnings;
       
     7 use File::Temp;
       
     8 
       
     9 my $CORE = '/etc/ldap/schema/core.schema';
       
    10 
       
    11 die "$0: $CORE: $!\n" if not -r $CORE;
       
    12 
       
    13 my $cf = File::Temp->new();
       
    14 my $cd = File::Temp->newdir();
       
    15 
       
    16 $cf->print(<<_EOF);
       
    17 include $CORE
       
    18 include ./exim.schema
       
    19 _EOF
       
    20 
       
    21 close $cf;
       
    22 
       
    23 system slaptest => ( -f => $cf ),
       
    24 		   ( -F => $cd );
       
    25 
       
    26 my $ldif;
       
    27 open($ldif, '<', $_ = "$cd/cn=config/cn=schema/cn={1}exim.ldif")
       
    28     or die "Can't open $_: $!\n";
       
    29 
       
    30 $_ = do { local $/ = undef; <$ldif> };
       
    31 
       
    32 s/\n\s+//gms;
       
    33 s/^(?!(olc|dn|objectClass|cn)).*?\n//msg;
       
    34 s/(?<=^dn: cn=){\d+}(\w+)/$1,cn=schema,cn=config/ms;
       
    35 s/(?<=^cn: ){\d+}//msg;
       
    36 
       
    37 open($ldif, '>', 'exim.ldif') 
       
    38     or die "Can't open > exim.ldif: $!\n";
       
    39 $ldif->print(<<__);
       
    40 # autogenerated by $0
       
    41 # do not edit, edit exim.schema instead
       
    42 __
       
    43 $ldif->print($_);
       
    44 close $ldif;