File schema2ldif of Package openldap2

#!/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("^attributetypes$","olcAttributeTypes:",$1)
	gsub("^objectidentifier$","olcObjectIdentifier:",$1)
        buffer = $0;
}
END { wrap(buffer); print "" }
' "$@"

openSUSE Build Service is sponsored by