# HG changeset patch # User Heiko Schlittermann (JUMPER) # Date 1382387231 -7200 # Node ID 5b0accae98a775da2ae27accfdbcb6bd21b1dfa2 # Parent 51ab3dd0fd5c9c9244c811bb035baaef960c8e80 renamed convert -> schema2ldif diff -r 51ab3dd0fd5c -r 5b0accae98a7 convert --- a/convert Mon Oct 21 22:24:17 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -#! /usr/bin/perl -# according -# http://www.zytrax.com/books/ldap/ch6/slapd-config.html#use-schemas -use 5.010; -use strict; -use warnings; -use File::Temp; - -my $CORE = '/etc/ldap/schema/core.schema'; - -die "$0: $CORE: $!\n" if not -r $CORE; - -my $cf = File::Temp->new(); -my $cd = File::Temp->newdir(); - -$cf->print(<<_EOF); -include $CORE -include ./exim.schema -_EOF - -close $cf; - -system slaptest => ( -f => $cf ), - ( -F => $cd ); - -my $ldif; -open($ldif, '<', $_ = "$cd/cn=config/cn=schema/cn={1}exim.ldif") - or die "Can't open $_: $!\n"; - -$_ = do { local $/ = undef; <$ldif> }; - -s/\n\s+//gms; -s/^(?!(olc|dn|objectClass|cn)).*?\n//msg; -s/(?<=^dn: cn=){\d+}(\w+)/$1,cn=schema,cn=config/ms; -s/(?<=^cn: ){\d+}//msg; - -open($ldif, '>', 'exim.ldif') - or die "Can't open > exim.ldif: $!\n"; -$ldif->print(<<__); -# autogenerated by $0 -# do not edit, edit exim.schema instead -__ -$ldif->print($_); -close $ldif; diff -r 51ab3dd0fd5c -r 5b0accae98a7 schema2ldif --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schema2ldif Mon Oct 21 22:27:11 2013 +0200 @@ -0,0 +1,44 @@ +#! /usr/bin/perl +# according +# http://www.zytrax.com/books/ldap/ch6/slapd-config.html#use-schemas +use 5.010; +use strict; +use warnings; +use File::Temp; + +my $CORE = '/etc/ldap/schema/core.schema'; + +die "$0: $CORE: $!\n" if not -r $CORE; + +my $cf = File::Temp->new(); +my $cd = File::Temp->newdir(); + +$cf->print(<<_EOF); +include $CORE +include ./exim.schema +_EOF + +close $cf; + +system slaptest => ( -f => $cf ), + ( -F => $cd ); + +my $ldif; +open($ldif, '<', $_ = "$cd/cn=config/cn=schema/cn={1}exim.ldif") + or die "Can't open $_: $!\n"; + +$_ = do { local $/ = undef; <$ldif> }; + +s/\n\s+//gms; +s/^(?!(olc|dn|objectClass|cn)).*?\n//msg; +s/(?<=^dn: cn=){\d+}(\w+)/$1,cn=schema,cn=config/ms; +s/(?<=^cn: ){\d+}//msg; + +open($ldif, '>', 'exim.ldif') + or die "Can't open > exim.ldif: $!\n"; +$ldif->print(<<__); +# autogenerated by $0 +# do not edit, edit exim.schema instead +__ +$ldif->print($_); +close $ldif;