diff options
Diffstat (limited to 'officecfg/util/component-ldif.gen')
-rw-r--r-- | officecfg/util/component-ldif.gen | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/officecfg/util/component-ldif.gen b/officecfg/util/component-ldif.gen new file mode 100644 index 000000000000..4b0fffeaa563 --- /dev/null +++ b/officecfg/util/component-ldif.gen @@ -0,0 +1,85 @@ +: # -*- perl -*- +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# generates of the component schema list an ldap schema in ldif format + +eval 'exec perl -wS $0 ${1+"$@"}' + if 0; + +#creating the output file +open(OUTFILE, ">$ARGV[0]") or die "can't open >$ARGV[0]"; + +#open the makefile +open(INFILE, "makefile.mk") or die "can't open makefile.mk"; + +$inxcs=0; + +#search all schemas in the makefile except userprofile and format them as e.g org.openoffice.Inet +while(<INFILE>) { + tr/\r\n//d; + + if (/^\s*XCSFILES/) { + $inxcs++; + } + next unless $inxcs; + + if ($inxcs) { + + $inxcs=0 unless /\\$/; + + next if (/^\s*XCSFILES/); + next if (/UserProfile/); + + s/^\s+//; + s/\s*\\$//; + s/\.xcs.*$//; + s#\$/#.#g; + + push(@comp_names, $_); + } +} +close(INFILE); + +# generate the schema in ldif format +foreach (@comp_names) { + + s#org.openoffice.#oo-#g; + s#\.#-#g; + + $myLdapName=lc $_; + + print OUTFILE "dn: cn=schema\n"; + print OUTFILE "attributetypes: ($myLdapName-attr-oid NAME '$myLdapName-attr' DESC '$myLdapName attribute' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE_VALUE )\n\n"; + + print OUTFILE "dn: cn=schema\n"; + print OUTFILE "objectclasses: ($myLdapName-class-oid NAME '$myLdapName-class' DESC '$myLdapName objclass' SUP 'top' MAY ($myLdapName-attr \$ ))\n\n"; +} + +close(OUTFILE); + +exit 0; |