forked from jengelh/openldap2
Converted schema2ldif to awk instead of perl, to reduce runtime
dependencies. OBS-URL: https://build.opensuse.org/package/show/network:ldap/openldap2?expand=0&rev=19
This commit is contained in:
parent
04c9eb4bdf
commit
66d5d81e65
@ -50,7 +50,7 @@ Source2: addonschema.tar.gz
|
|||||||
Source3: DB_CONFIG
|
Source3: DB_CONFIG
|
||||||
Source4: sasl-slapd.conf
|
Source4: sasl-slapd.conf
|
||||||
Source5: README.update
|
Source5: README.update
|
||||||
Source6: schema2ldif.pl
|
Source6: schema2ldif
|
||||||
Source100: openldap-2.3.37.tar.bz2
|
Source100: openldap-2.3.37.tar.bz2
|
||||||
Patch: openldap2.dif
|
Patch: openldap2.dif
|
||||||
Patch2: slapd_conf.dif
|
Patch2: slapd_conf.dif
|
||||||
|
@ -50,7 +50,7 @@ Source2: addonschema.tar.gz
|
|||||||
Source3: DB_CONFIG
|
Source3: DB_CONFIG
|
||||||
Source4: sasl-slapd.conf
|
Source4: sasl-slapd.conf
|
||||||
Source5: README.update
|
Source5: README.update
|
||||||
Source6: schema2ldif.pl
|
Source6: schema2ldif
|
||||||
Source100: openldap-2.3.37.tar.bz2
|
Source100: openldap-2.3.37.tar.bz2
|
||||||
Patch: openldap2.dif
|
Patch: openldap2.dif
|
||||||
Patch2: slapd_conf.dif
|
Patch2: slapd_conf.dif
|
||||||
|
52
schema2ldif
Normal file
52
schema2ldif
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# This is a simple tool to convert OpenLDAP Schema files to
|
||||||
|
# LDIF suitable for usage with OpenLDAP's dynamic configuration
|
||||||
|
# backend (cn=config)
|
||||||
|
#
|
||||||
|
# usage:
|
||||||
|
# schema2ldif <input file>
|
||||||
|
#
|
||||||
|
# The generated LDIF is printed to stdout.
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo 'usage: schema2ldif <input file>'
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
cn=`basename $1 .schema`
|
||||||
|
|
||||||
|
echo "dn: cn=$cn,cn=schema,cn=config";
|
||||||
|
echo "objectclass: olcSchemaConfig";
|
||||||
|
echo "cn: $cn";
|
||||||
|
|
||||||
|
/usr/bin/awk '
|
||||||
|
BEGIN {
|
||||||
|
buffer = "";
|
||||||
|
width=78 ;
|
||||||
|
}
|
||||||
|
function wrap(data)
|
||||||
|
{
|
||||||
|
if (length(data) > 0) {
|
||||||
|
do {
|
||||||
|
print substr(data,0,width);
|
||||||
|
data = " " substr(data, width+1);
|
||||||
|
}
|
||||||
|
while (length(data) > 1 )
|
||||||
|
};
|
||||||
|
}
|
||||||
|
/^[\t ]*$/ {wrap(buffer); buffer=""; print "#"; next; }
|
||||||
|
/^#.*$/ { wrap(buffer); buffer=""; print $0; next }
|
||||||
|
/^[\t ]+/ { gsub("^[\t ]+",""); buffer = buffer " " $0; next; }
|
||||||
|
{
|
||||||
|
wrap(buffer);
|
||||||
|
$1 = tolower($1) ;
|
||||||
|
gsub("^objectclass$","olcObjectclasses:",$1)
|
||||||
|
gsub("^attributetype$","olcAttributeTypes:",$1)
|
||||||
|
gsub("^objectidentifier$","olcObjectIdentifier:",$1)
|
||||||
|
buffer = $0;
|
||||||
|
}
|
||||||
|
END { wrap(buffer); print "" }
|
||||||
|
' "$@"
|
||||||
|
|
@ -1,74 +0,0 @@
|
|||||||
#!/usr/bin/perl -w
|
|
||||||
#
|
|
||||||
# This is a simple tool to convert OpenLDAP Schema files to
|
|
||||||
# LDIF suitable for usage with OpenLDAP's dynamic configuration
|
|
||||||
# backend (cn=config)
|
|
||||||
#
|
|
||||||
# usage:
|
|
||||||
# schema2ldif.pl <input file>
|
|
||||||
#
|
|
||||||
# The generated LDIF is printed to stdout.
|
|
||||||
#
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use File::Basename;
|
|
||||||
use Text::Wrap;
|
|
||||||
|
|
||||||
my $infile = $ARGV[0] || print_usage();
|
|
||||||
|
|
||||||
sub print_usage
|
|
||||||
{
|
|
||||||
print STDERR "usage: schema2ldif.pl <input file>\n";
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
open( SCHEMA, "< $infile");
|
|
||||||
|
|
||||||
my $schemaline = "";
|
|
||||||
$Text::Wrap::columns=78;
|
|
||||||
$Text::Wrap::separator="\n ";
|
|
||||||
|
|
||||||
my $cn = basename($infile, ".schema");
|
|
||||||
print STDOUT "dn: cn=$cn,cn=schema,cn=config\n";
|
|
||||||
print STDOUT "objectClass: olcSchemaConfig\n";
|
|
||||||
print STDOUT "cn: $cn\n";
|
|
||||||
while ( <SCHEMA> )
|
|
||||||
{
|
|
||||||
my $line = $_;
|
|
||||||
if ( $line =~ /^\s+(.+)$/ )
|
|
||||||
{
|
|
||||||
$schemaline .= " $1";
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
elsif ( $schemaline ne "" )
|
|
||||||
{
|
|
||||||
print STDOUT wrap(""," ", $schemaline);
|
|
||||||
print STDOUT "\n";
|
|
||||||
$schemaline = "";
|
|
||||||
}
|
|
||||||
if ( $line =~ /^#/ )
|
|
||||||
{
|
|
||||||
print STDOUT $line;
|
|
||||||
}
|
|
||||||
elsif ( $line =~ /^\s*$/ )
|
|
||||||
{
|
|
||||||
print STDOUT "#\n";
|
|
||||||
}
|
|
||||||
elsif ( $line =~ /^(objectclass|attributetype|objectidentifier)\s+(.+)$/i )
|
|
||||||
{
|
|
||||||
if ( lc($1) eq "objectidentifier" )
|
|
||||||
{
|
|
||||||
$schemaline .= "olcObjectIdentifier: ";
|
|
||||||
}
|
|
||||||
elsif ( lc($1) eq "objectclass" )
|
|
||||||
{
|
|
||||||
$schemaline .= "olcObjectClasses: ";
|
|
||||||
}
|
|
||||||
elsif ( lc($1) eq "attributetype" )
|
|
||||||
{
|
|
||||||
$schemaline .= "olcAttributeTypes: ";
|
|
||||||
}
|
|
||||||
$schemaline .= $2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user