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 slapd 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 slapd format 69 70foreach (@comp_names) { 71 72 s#org.openoffice.#oo-#g; 73 s#\.#-#g; 74 75 $myLdapName=lc $_; 76 77 print OUTFILE "attribute $myLdapName-attr $myLdapName-attr-oid cis single\n"; 78 print OUTFILE "objectclass $myLdapName-class\n"; 79 print OUTFILE "\toid\n"; 80 print OUTFILE "\t\t$myLdapName-class-oid\n"; 81 print OUTFILE "\tsuperior top\n"; 82 print OUTFILE "\tallows\n"; 83 print OUTFILE "\t$myLdapName-attr\n"; 84} 85 86close(OUTFILE); 87 88exit 0; 89