| : # -*- perl -*- |
| #************************************************************** |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| #************************************************************** |
| |
| |
| # generates of the component schema list mapping file, which |
| # describes the mapping between OOR and LDAP |
| |
| 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); |
| |
| # create the properites file |
| |
| print OUTFILE "# location of the component schema \n"; |
| print OUTFILE "component-schema=schema\n\n"; |
| |
| print OUTFILE "# location of the component data \n"; |
| print OUTFILE "component-data=data\n\n"; |
| |
| $comps=join (';',@comp_names); |
| print OUTFILE "# installed components \n"; |
| print OUTFILE "components=$comps\n\n"; |
| |
| print OUTFILE "# component mapping \n"; |
| foreach (@comp_names) { |
| $myCompName=$_; |
| |
| s#org.openoffice.#oo-#g; |
| s#\.#-#g; |
| |
| $myLdapName=lc $_; |
| |
| print OUTFILE "component/$myCompName/attribute=$myLdapName-attr\n"; |
| print OUTFILE "component/$myCompName/objectclass=$myLdapName-class\n\n"; |
| } |
| |
| close(OUTFILE); |
| |
| exit 0; |