1: # -*- perl -*- 2#************************************************************************* 3# 4# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5# 6# Copyright 2000, 2010 Oracle and/or its affiliates. 7# 8# OpenOffice.org - a multi-platform office productivity suite 9# 10# This file is part of OpenOffice.org. 11# 12# OpenOffice.org is free software: you can redistribute it and/or modify 13# it under the terms of the GNU Lesser General Public License version 3 14# only, as published by the Free Software Foundation. 15# 16# OpenOffice.org is distributed in the hope that it will be useful, 17# but WITHOUT ANY WARRANTY; without even the implied warranty of 18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19# GNU Lesser General Public License version 3 for more details 20# (a copy is included in the LICENSE file that accompanied this code). 21# 22# You should have received a copy of the GNU Lesser General Public License 23# version 3 along with OpenOffice.org. If not, see 24# <http://www.openoffice.org/license.html> 25# for a copy of the LGPLv3 License. 26# 27#************************************************************************* 28 29# generates of the component schema list an ldap schema in ldif format 30 31eval 'exec perl -wS $0 ${1+"$@"}' 32 if 0; 33 34#creating the output file 35open(OUTFILE, ">$ARGV[0]") or die "can't open >$ARGV[0]"; 36 37#open the makefile 38open(INFILE, "makefile.mk") or die "can't open makefile.mk"; 39 40$inxcs=0; 41 42#search all schemas in the makefile except userprofile and format them as e.g org.openoffice.Inet 43while(<INFILE>) { 44 tr/\r\n//d; 45 46 if (/^\s*XCSFILES/) { 47 $inxcs++; 48 } 49 next unless $inxcs; 50 51 if ($inxcs) { 52 53 $inxcs=0 unless /\\$/; 54 55 next if (/^\s*XCSFILES/); 56 next if (/UserProfile/); 57 58 s/^\s+//; 59 s/\s*\\$//; 60 s/\.xcs.*$//; 61 s#\$/#.#g; 62 63 push(@comp_names, $_); 64 } 65} 66close(INFILE); 67 68# generate the schema in ldif format 69foreach (@comp_names) { 70 71 s#org.openoffice.#oo-#g; 72 s#\.#-#g; 73 74 $myLdapName=lc $_; 75 76 print OUTFILE "dn: cn=schema\n"; 77 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"; 78 79 print OUTFILE "dn: cn=schema\n"; 80 print OUTFILE "objectclasses: ($myLdapName-class-oid NAME '$myLdapName-class' DESC '$myLdapName objclass' SUP 'top' MAY ($myLdapName-attr \$ ))\n\n"; 81} 82 83close(OUTFILE); 84 85exit 0; 86