|
Propchange: ofbiz/trunk/applications/content/template/docbook/epub3/titlepage.templates.xsl
------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/content/template/docbook/epub3/titlepage.templates.xsl ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/applications/content/template/docbook/epub3/titlepage.templates.xsl ------------------------------------------------------------------------------ svn:mime-type = text/xsl Added: ofbiz/trunk/applications/content/template/docbook/extensions/LICENSE.txt URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/LICENSE.txt?rev=1395298&view=auto ============================================================================== --- ofbiz/trunk/applications/content/template/docbook/extensions/LICENSE.txt (added) +++ ofbiz/trunk/applications/content/template/docbook/extensions/LICENSE.txt Sun Oct 7 13:31:52 2012 @@ -0,0 +1,264 @@ +LICENSE + + Copyright (c) 2008 N. Quaine - NexWave Solutions All Rights Reserved. + +CONDITIONS + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +Neither the name of the copyright holders nor the names of the contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +DISCLAIMER + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + + + +Some code in src/java/org/apache/lucene/util/UnicodeUtil.java was +derived from unicode conversion examples available at +http://www.unicode.org/Public/PROGRAMS/CVTUTF. Here is the copyright +from those sources: + +/* + * Copyright 2001-2004 Unicode, Inc. + * + * Disclaimer + * + * This source code is provided as is by Unicode, Inc. No claims are + * made as to fitness for any particular purpose. No warranties of any + * kind are expressed or implied. The recipient agrees to determine + * applicability of information provided. If this file has been + * purchased on magnetic or optical media from Unicode, Inc., the + * sole remedy for any claim will be exchange of defective media + * within 90 days of receipt. + * + * Limitations on Rights to Redistribute This Code + * + * Unicode, Inc. hereby grants the right to freely use the information + * supplied in this file in the creation of products supporting the + * Unicode Standard, and to make copies of this file in any form + * for internal or external distribution as long as this notice + * remains attached. + */ + + +Some code in src/java/org/apache/lucene/util/ArrayUtil.java was +derived from Python 2.4.2 sources available at +http://www.python.org. Full license is here: + + http://www.python.org/download/releases/2.4.2/license/ + + Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/LICENSE.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/LICENSE.txt ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/LICENSE.txt ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/applications/content/template/docbook/extensions/NOTICE.txt URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/NOTICE.txt?rev=1395298&view=auto ============================================================================== --- ofbiz/trunk/applications/content/template/docbook/extensions/NOTICE.txt (added) +++ ofbiz/trunk/applications/content/template/docbook/extensions/NOTICE.txt Sun Oct 7 13:31:52 2012 @@ -0,0 +1,12 @@ +The webhelpindexer is released under the Apache 2.0 license and +includes software from other projects. + +The webhelpindexer was originally developed by N. Quaine and released +under a MIT/BSD-style license. See LICENSE.txt. + +This product includes software developed by The Apache Software +Foundation (http://www.apache.org/). See LICENSE.txt. + +This product also includes software released as part of the Snowball +project maintained by Martin Porter and Richard Boulton released under +a BSD-style license: http://snowball.tartarus.org/ Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/NOTICE.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/NOTICE.txt ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/NOTICE.txt ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/applications/content/template/docbook/extensions/README.LIBXSLT URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/README.LIBXSLT?rev=1395298&view=auto ============================================================================== --- ofbiz/trunk/applications/content/template/docbook/extensions/README.LIBXSLT (added) +++ ofbiz/trunk/applications/content/template/docbook/extensions/README.LIBXSLT Sun Oct 7 13:31:52 2012 @@ -0,0 +1,52 @@ +---------------------------------------------------------------------- + README file for the libxslt extensions +---------------------------------------------------------------------- +$Id: README.LIBXSLT 7877 2008-03-08 04:07:52Z xmldoc $ + +These are XSLT extensions written in Python for use with the DocBook XML +stylesheets and the libxslt library[1]. + +Currently, the only available extension is a function for adjusting column +widths in tables. For more information, see the section describing the +equivalent Java extension in "DocBook XSL: The Complete Guide"[2]. + +---------------------------------------------------------------------- +Preparations +---------------------------------------------------------------------- +In addition to libxml2 and libxslt, the following software needs to +be installed before you start using the extensions: + +1. Python[3]. + +2. Python bindings for libxml2/libxslt. Most distributions of + libxml2/libxslt for Unix/Linux include these bindings. + A native Windows port is provided by Stéphane Bidoul[4]. + +---------------------------------------------------------------------- +Installation of the extensions +---------------------------------------------------------------------- +No special installation step is needed. + +---------------------------------------------------------------------- +How to use the extensions +---------------------------------------------------------------------- +Instead of using xsltproc, you run a Python program (xslt.py). The +command has this general form: + +python xslt.py xmlfile xslfile [outputfile] [param1=val1 [param2=val]...] + +Modify paths, filenames, and parameters as needed. Make sure to set +the "use.extensions" and "tablecolumns.extension" parameters to 1. + +---------------------------------------------------------------------- +Manifest +---------------------------------------------------------------------- +README.LIBXSLT This file +xslt.py Executable script file +docbook.py Module that implements extensions + +---------------------------------------------------------------------- +[1] http://xmlsoft.org/XSLT +[2] http://www.sagehill.net/docbookxsl/ColumnWidths.html +[3] http://www.python.org/download +[4] http://users.skynet.be/sbi/libxml-python Added: ofbiz/trunk/applications/content/template/docbook/extensions/README.txt URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/README.txt?rev=1395298&view=auto ============================================================================== --- ofbiz/trunk/applications/content/template/docbook/extensions/README.txt (added) +++ ofbiz/trunk/applications/content/template/docbook/extensions/README.txt Sun Oct 7 13:31:52 2012 @@ -0,0 +1,4 @@ +See webhelp/docs/index.html for more information about the webhelp +indexer and the webhelp output format. See webhelp/docs/index.html for +more information about the webhelp indexer and the webhelp output +format. Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/README.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/README.txt ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/README.txt ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/applications/content/template/docbook/extensions/docbook.py URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/docbook.py?rev=1395298&view=auto ============================================================================== --- ofbiz/trunk/applications/content/template/docbook/extensions/docbook.py (added) +++ ofbiz/trunk/applications/content/template/docbook/extensions/docbook.py Sun Oct 7 13:31:52 2012 @@ -0,0 +1,239 @@ +# docbook.py: extension module +# $Id: docbook.py 8353 2009-03-17 16:57:50Z mzjn $ + +import sys +import string +import libxml2 +import libxslt +import re +import math + +# Some globals +pixelsPerInch = 96.0 +unitHash = { 'in': pixelsPerInch, + 'cm': pixelsPerInch / 2.54, + 'mm': pixelsPerInch / 25.4, + 'pc': (pixelsPerInch / 72.0) * 12, + 'pt': pixelsPerInch / 72.0, + 'px': 1 } + +# ====================================================================== + +def adjustColumnWidths(ctx, nodeset): + # + # Small check to verify the context is correcly accessed + # + try: + pctxt = libxslt.xpathParserContext(_obj=ctx) + ctxt = pctxt.context() + tctxt = ctxt.transformContext() + except: + pass + + # Get the nominal table width + varString = lookupVariable(tctxt, "nominal.table.width", None) + if varString == None: + nominalWidth = 6 * pixelsPerInch; + else: + nominalWidth = convertLength(varString); + + # Get the requested table width + tableWidth = lookupVariable(tctxt, "table.width", "100%") + + foStylesheet = (tctxt.variableLookup("stylesheet.result.type", None) == "fo") + + relTotal = 0 + relParts = [] + + absTotal = 0 + absParts = [] + + colgroup = libxml2.xmlNode(_obj = nodeset[0]) + # If this is an foStylesheet, we've been passed a list of fo:table-columns. + # Otherwise we've been passed a colgroup that contains a list of cols. + if foStylesheet: + colChildren = colgroup + else: + colChildren = colgroup.children + + col = colChildren + while col != None: + if foStylesheet: + width = col.prop("column-width") + else: + width = col.prop("width") + + if width == None: + width = "1*" + + relPart = 0.0 + absPart = 0.0 + starPos = string.find(width, "*") + if starPos >= 0: + relPart, absPart = string.split(width, "*", 2) + relPart = float(relPart) + relTotal = relTotal + float(relPart) + else: + absPart = width + + pixels = convertLength(absPart) + absTotal = absTotal + pixels + + relParts.append(relPart) + absParts.append(pixels) + + col = col.next + + # Ok, now we have the relative widths and absolute widths in + # two parallel arrays. + # + # - If there are no relative widths, output the absolute widths + # - If there are no absolute widths, output the relative widths + # - If there are a mixture of relative and absolute widths, + # - If the table width is absolute, turn these all into absolute + # widths. + # - If the table width is relative, turn these all into absolute + # widths in the nominalWidth and then turn them back into + # percentages. + + widths = [] + + if relTotal == 0: + for absPart in absParts: + if foStylesheet: + inches = absPart / pixelsPerInch + widths.append("%4.2fin" % inches) + else: + widths.append("%d" % absPart) + elif absTotal == 0: + for relPart in relParts: + rel = relPart / relTotal * 100 + widths.append(rel) + widths = correctRoundingError(widths) + else: + pixelWidth = nominalWidth + if string.find(tableWidth, "%") < 0: + pixelWidth = convertLength(tableWidth) + + if pixelWidth <= absTotal: + print "Table is wider than table width" + else: + pixelWidth = pixelWidth - absTotal + + absTotal = 0 + for count in range(len(relParts)): + rel = relParts[count] / relTotal * pixelWidth + relParts[count] = rel + absParts[count] + absTotal = absTotal + rel + absParts[count] + + if string.find(tableWidth, "%") < 0: + for count in range(len(relParts)): + if foStylesheet: + pixels = relParts[count] + inches = pixels / pixelsPerInch + widths.append("%4.2fin" % inches) + else: + widths.append(relParts[count]) + else: + for count in range(len(relParts)): + rel = relParts[count] / absTotal * 100 + widths.append(rel) + widths = correctRoundingError(widths) + + # Danger, Will Robinson! In-place modification of the result tree! + # Side-effect free? We don' need no steenkin' side-effect free! + count = 0 + col = colChildren + while col != None: + if foStylesheet: + col.setProp("column-width", widths[count]) + else: + col.setProp("width", widths[count]) + + count = count+1 + col = col.next + + return nodeset + +def convertLength(length): + # Given "3.4in" return the width in pixels + global pixelsPerInch + global unitHash + + m = re.search('([+-]?[\d\.]+)(\S+)', length) + if m != None and m.lastindex > 1: + unit = pixelsPerInch + if unitHash.has_key(m.group(2)): + unit = unitHash[m.group(2)] + else: + print "Unrecognized length: " + m.group(2) + + pixels = unit * float(m.group(1)) + else: + pixels = 0 + + return pixels + +def correctRoundingError(floatWidths): + # The widths are currently floating point numbers, we have to truncate + # them back to integers and then distribute the error so that they sum + # to exactly 100%. + + totalWidth = 0 + widths = [] + for width in floatWidths: + width = math.floor(width) + widths.append(width) + totalWidth = totalWidth + math.floor(width) + + totalError = 100 - totalWidth + columnError = totalError / len(widths) + error = 0 + for count in range(len(widths)): + width = widths[count] + error = error + columnError + if error >= 1.0: + adj = math.floor(error) + error = error - adj + widths[count] = "%d%%" % (width + adj) + else: + widths[count] = "%d%%" % width + + return widths + +def lookupVariable(tctxt, varName, default): + varString = tctxt.variableLookup(varName, None) + if varString == None: + return default + + # If it's a list, get the first element + if type(varString) == type([]): + varString = varString[0] + + # If it's not a string, it must be a node, get its content + if type(varString) != type(""): + varString = varString.content + + return varString + +# ====================================================================== +# Random notes... + +#once you have a node which is a libxml2 python xmlNode wrapper all common +#operations are possible: +# .children .last .parent .next .prev .doc for navigation +# .content .type for introspection +# .prop("attribute_name") to lookup attribute values + +# # Now make a nodeset to return +# # Danger, Will Robinson! This creates a memory leak! +# newDoc = libxml2.newDoc("1.0") +# newColGroup = newDoc.newDocNode(None, "colgroup", None) +# newDoc.addChild(newColGroup) +# col = colgroup.children +# while col != None: +# newCol = newDoc.newDocNode(None, "col", None) +# newCol.copyPropList(col); +# newCol.setProp("width", "4") +# newColGroup.addChild(newCol) +# col = col.next Added: ofbiz/trunk/applications/content/template/docbook/extensions/lucene-analyzers-3.0.0.jar URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/lucene-analyzers-3.0.0.jar?rev=1395298&view=auto ============================================================================== Binary file - no diff available. Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/lucene-analyzers-3.0.0.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: ofbiz/trunk/applications/content/template/docbook/extensions/lucene-core-3.0.0.jar URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/lucene-core-3.0.0.jar?rev=1395298&view=auto ============================================================================== Binary file - no diff available. Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/lucene-core-3.0.0.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: ofbiz/trunk/applications/content/template/docbook/extensions/saxon65.jar URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/saxon65.jar?rev=1395298&view=auto ============================================================================== Binary file - no diff available. Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/saxon65.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: ofbiz/trunk/applications/content/template/docbook/extensions/tagsoup-1.2.1.jar URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/tagsoup-1.2.1.jar?rev=1395298&view=auto ============================================================================== Binary file - no diff available. Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/tagsoup-1.2.1.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: ofbiz/trunk/applications/content/template/docbook/extensions/webhelpindexer.jar URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/webhelpindexer.jar?rev=1395298&view=auto ============================================================================== Binary file - no diff available. Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/webhelpindexer.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: ofbiz/trunk/applications/content/template/docbook/extensions/xalan27.jar URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/xalan27.jar?rev=1395298&view=auto ============================================================================== Binary file - no diff available. Propchange: ofbiz/trunk/applications/content/template/docbook/extensions/xalan27.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: ofbiz/trunk/applications/content/template/docbook/extensions/xslt.py URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/extensions/xslt.py?rev=1395298&view=auto ============================================================================== --- ofbiz/trunk/applications/content/template/docbook/extensions/xslt.py (added) +++ ofbiz/trunk/applications/content/template/docbook/extensions/xslt.py Sun Oct 7 13:31:52 2012 @@ -0,0 +1,84 @@ +#!/usr/bin/python -u +# $Id: xslt.py 8353 2009-03-17 16:57:50Z mzjn $ + +import sys +import libxml2 +import libxslt +from docbook import adjustColumnWidths + +# Check the arguments +usage = "Usage: %s xmlfile.xml xslfile.xsl [outputfile] [param1=val [param2=val]...]" % sys.argv[0] + +xmlfile = None +xslfile = None +outfile = "-" +params = {} + +try: + xmlfile = sys.argv[1] + xslfile = sys.argv[2] +except IndexError: + print usage + sys.exit(1) + +def quote(astring): + if astring.find("'") < 0: + return "'" + astring + "'" + else: + return '"' + astring + '"' + +try: + outfile = sys.argv[3] + if outfile.find("=") > 0: + name, value = outfile.split("=", 2) + params[name] = quote(value) + outfile = None + + count = 4 + while (sys.argv[count]): + try: + name, value = sys.argv[count].split("=", 2) + if params.has_key(name): + print "Warning: '%s' re-specified; replacing value" % name + params[name] = quote(value) + except ValueError: + print "Invalid parameter specification: '" + sys.argv[count] + "'" + print usage + sys.exit(1) + count = count+1 +except IndexError: + pass + +# ====================================================================== +# Memory debug specific +# libxml2.debugMemory(1) + +# Setup environment +libxml2.lineNumbersDefault(1) +libxml2.substituteEntitiesDefault(1) +libxslt.registerExtModuleFunction("adjustColumnWidths", + "http://nwalsh.com/xslt/ext/xsltproc/python/Table", + adjustColumnWidths) + +# Initialize and run +styledoc = libxml2.parseFile(xslfile) +style = libxslt.parseStylesheetDoc(styledoc) +doc = libxml2.parseFile(xmlfile) +result = style.applyStylesheet(doc, params) + +# Save the result +if outfile: + style.saveResultToFilename(outfile, result, 0) +else: + print result + +# Free things up +style.freeStylesheet() +doc.freeDoc() +result.freeDoc() + +# Memory debug specific +#libxslt.cleanup() +#if libxml2.debugMemory(1) != 0: +# print "Memory leak %d bytes" % (libxml2.debugMemory(1)) +# libxml2.dumpMemory() Added: ofbiz/trunk/applications/content/template/docbook/html/docbook.css.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/html/docbook.css.xml?rev=1395298&view=auto ============================================================================== --- ofbiz/trunk/applications/content/template/docbook/html/docbook.css.xml (added) +++ ofbiz/trunk/applications/content/template/docbook/html/docbook.css.xml Sun Oct 7 13:31:52 2012 @@ -0,0 +1,110 @@ +<?xml version="1.0"?> +<style> + +/********************************/ +/* start of styles in block.xsl */ + +.formalpara-title { + font-weight: bold; +} + +div.blockquote-title { + font-weight: bold; + margin-top: 1em; + margin-bottom: 1em; +} + +span.msgmain-title { + font-weight: bold; +} + +span.msgsub-title { + font-weight: bold; +} + +span.msgrel-title { + font-weight: bold; +} + +div.msglevel, div.msgorig, div.msgaud { + margin-top: 1em; + margin-bottom: 1em; +} + +span.msglevel-title, span.msgorig-title, span.msgaud-title { + font-weight: bold; +} + +div.msgexplan { + margin-top: 1em; + margin-bottom: 1em; +} + +span.msgexplan-title { + font-weight: bold; +} + +/* end of styles in block.xsl */ +/********************************/ + +/********************************/ +/* start of styles in autotoc.xsl */ + + +/* end of styles in autotoc.xsl */ +/********************************/ + +/********************************/ +/* start of styles in formal.xsl */ + +div.figure-title { + font-weight: bold; +} + +div.example-title { + font-weight: bold; +} + +div.equation-title { + font-weight: bold; +} + +div.table-title { + font-weight: bold; +} + +div.sidebar-title { + font-weight: bold; +} + + +/* end of styles in formal.xsl */ +/********************************/ + +/********************************/ +/* start of styles in verbatim.xsl */ + +div.programlisting { + white-space: pre; + font-family: monospace; +} + +div.screen { + white-space: pre; + font-family: monospace; +} + +div.synopsis { + white-space: pre; + font-family: monospace; +} + +/* end of styles in verbatim.xsl */ +/********************************/ + +/* footnote rule */ +hr.footnote-hr { + width: 100; +} + +</style> Propchange: ofbiz/trunk/applications/content/template/docbook/html/docbook.css.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/content/template/docbook/html/docbook.css.xml ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/applications/content/template/docbook/html/docbook.css.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: ofbiz/trunk/applications/content/template/docbook/images/draft.svg URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/images/draft.svg?rev=1395298&view=auto ============================================================================== --- ofbiz/trunk/applications/content/template/docbook/images/draft.svg (added) +++ ofbiz/trunk/applications/content/template/docbook/images/draft.svg Sun Oct 7 13:31:52 2012 @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- + Written by Thomas Schraitle <[hidden email]> +--> +<svg version="1.1" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + id="draft-svg"> + <g id="draft" transform="rotate(-45)translate(-300,200)"> + <!--<circle r="2mm" cx="100mm" cy="100mm" fill="black"/>--> + <text x="100mm" y="100mm" fill="lightgray" + font-size="140pt" text-anchor="middle">Draft</text> + </g> +</svg> Added: ofbiz/trunk/applications/content/template/docbook/install.sh URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/template/docbook/install.sh?rev=1395298&view=auto ============================================================================== --- ofbiz/trunk/applications/content/template/docbook/install.sh (added) +++ ofbiz/trunk/applications/content/template/docbook/install.sh Sun Oct 7 13:31:52 2012 @@ -0,0 +1,977 @@ +#!/bin/bash +# $Id$ +# $Source$ # + +# install.sh - Set up user environment for a XML/XSLT distribution + +# This is as an interactive installer for updating your +# environment to use an XML/XSLT distribution such as the DocBook +# XSL Stylesheets. Its main purpose is to configure your +# environment with XML catalog data and schema "locating rules" +# data provided in the XML/XSLT distribution. +# +# Although this installer was created for the DocBook project, it +# is a general-purpose tool that can be used with any XML/XSLT +# distribution that provides XML/SGML catalogs and locating rules. +# +# This script is mainly intended to make things easier for you if +# you want to install a particular XML/XSLT distribution that has +# not (yet) been packaged for your OS distro (Debian, Fedora, +# whatever), or to use "snapshot" or development releases +# +# It works by updating your shell startup file (e.g., .bashrc and +# .cshrc) and .emacs file and by finding or creating a writable +# CatalogManager.properties file to update. +# +# It makes backup copies of any files it touches, and also +# generates a uninstall.sh script for reverting its changes. +# +# In the same directory where it is located, it expects to find +# the following four files: +# - locatingrules.xml +# - catalog.xml +# - catalog +# - .urilist +# And if it's unable to locate a CatalogManager.properties file in +# your environment, it expects to find an "example" one in the +# same directory as itself, which it copies over to your +# ~/.resolver directory. +# +# If the distribution contains any executables, change the value +# of the thisBinDir to a colon-separated list of the pathnames of +# the directories that contain those executables. + +# mydir is the "canonical" absolute pathname for install.sh +mydir=$(cd -P $(dirname $0) && pwd -P) || exit 1 + +thisLocatingRules=$mydir/locatingrules.xml +thisXmlCatalog=$mydir/catalog.xml +thisSgmlCatalog=$mydir/catalog + +# .urilist file contains a list of pairs of local pathnames and +# URIs to test for catalog resolution +thisUriList=$mydir/.urilist +exampleCatalogManager=$mydir/.CatalogManager.properties.example +thisCatalogManager=$HOME/.resolver/CatalogManager.properties + +# thisBinDir directory is a colon-separated list of the pathnames +# to all directories that contain executables provided with the +# distribution (for example, the DocBook XSL Stylesheets +# distribution contains a "docbook-xsl-update" convenience script +# for rsync'ing up to the latest docbook-xsl snapshot). The +# install.sh script adds the value of thisBinDir to your PATH +# environment variable +thisBinDir=$mydir/tools/bin + +emit_message() { + echo "$1" 1>&2 +} + +if [ ! "${*#--batch}" = "$*" ]; then + batchmode="Yes"; +else + batchmode="No"; + emit_message + if [ ! "$1" = "--test" ]; then + emit_message "NOTE: For non-interactive installs/uninstalls, use --batch" + if [ ! "$1" = "--uninstall" ]; then + emit_message + fi + fi +fi + +osName="Unidentified" +if uname -s | grep -qi "cygwin"; then + osName="Cygwin" +fi + +classPathSeparator=":" +if [ "$osName" = "Cygwin" ]; then + thisJavaXmlCatalog=$(cygpath -m $thisXmlCatalog) + classPathSeparator=";" +else + thisJavaXmlCatalog=$thisXmlCatalog +fi + +main() { + removeOldFiles + checkRoot + updateCatalogManager + checkForResolver + writeDotFiles + updateUserStartupFiles + updateUserDotEmacs + writeUninstallFile + writeTestFile + printExitMessage +} + +removeOldFiles() { + rm -f $mydir/.profile.incl + rm -f $mydir/.cshrc.incl + rm -f $mydir/.emacs.el +} + +checkRoot() { + if [ $(id -u) == "0" ]; then + cat 1>&2 <<EOF + +WARNING: This install script is meant to be run as a non-root + user, but you are running it as root. + +EOF + read -s -n1 -p "Are you sure you want to continue? [No] " + emit_message "$REPLY" + case $REPLY in + [yY]) + emit_message + ;; + *) emit_message "OK, exiting without making changes." + exit + ;; + esac + fi + return 0 +} + +updateCatalogManager() { + + # - finds or creates a writable CatalogManager.properties file + # + # - adds the catalog.xml file for this distribution to the + # CatalogManager.properties file found + + if [ -z "$CLASSPATH" ]; then + cat 1>&2 <<EOF + +NOTE: There is no CLASSPATH variable set in your environment. + No attempt was made to find a CatalogManager.properties + file. Using $thisCatalogManager instead +EOF + else + # split CLASSPATH in a list of pathnames by replacing all separator + # characters with spaces + if [ "$osName" = "Cygwin" ]; then + pathnames=$(echo $CLASSPATH | tr ";" " ") + else + pathnames=$(echo $CLASSPATH | tr ":" " ") + fi + for path in $pathnames; do + if [ "$osName" = "Cygwin" ]; then + path=$(cygpath -u $path) + fi + # strip out trailing slash from pathname + path=$(echo $path | sed 's/\/$//') + # find CatalogManager.properties file + if [ -f $path/CatalogManager.properties ]; + then + existingCatalogManager=$path/CatalogManager.properties + break + fi + done + fi + # end of CLASSPATH check + + if [ -w "$existingCatalogManager" ]; then + # existing CatalogManager.properties was found and it is + # writable, so use it + myCatalogManager=$existingCatalogManager + else + if [ -f "$existingCatalogManager" ]; then + # a non-writable CatalogManager.properties exists, so emit a + # note saying that it won't be used + cat 1>&2 <<EOF +NOTE: $existingCatalogManager file found, + but you don't have permission to write to it. + Will instead use: + $thisCatalogManager +EOF + else + # CLASSPATH is set, but no CatalogManager.properties found + if [ -n "$CLASSPATH" ]; then + cat 1>&2 <<EOF +NOTE: No CatalogManager.properties found from CLASSPATH. + Will instead use: + $thisCatalogManager +EOF + fi + fi + if [ "$batchmode" = "Yes" ]; then + emit_message + fi + # end of check for existing writable CatalogManager.properties + + if [ -f $thisCatalogManager ]; then + myCatalogManager=$thisCatalogManager + else + REPLY="" + if [ ! "$batchmode" = "Yes" ]; then + emit_message + read -s -n1 -p "Create $thisCatalogManager file? [Yes] " + emit_message "$REPLY" + emit_message + fi + case $REPLY in + [nNqQ]) + emitNoChangeMsg + ;; + *) + if [ ! -d "${thisCatalogManager%/*}" ]; then + mkdir -p ${thisCatalogManager%/*} + fi + cp $mydir/.CatalogManager.properties.example $thisCatalogManager || exit 1 + emit_message "NOTE: Created the following file:" + emit_message " $thisCatalogManager" + myCatalogManager=$thisCatalogManager + ;; + esac + # end of creating "private" CatalogManager.properties + fi + # end of check for "private" CatalogManager.properties + fi + # end of check finding/creating writable CatalogManager.properties + + if [ -n "$myCatalogManager" ]; then + etcXmlCatalog= + catalogsLine=$(grep "^catalogs=" $myCatalogManager) + if [ -f /etc/xml/catalog ] && [ "$osName" != "Cygwin" ] \ + && [ "${catalogsLine#*/etc/xml/catalog*}" = "$catalogsLine" ]; then + cat 1>&2 <<EOF + +WARNING: /etc/xml/catalog exists but was not found in: + $myCatalogManager + If /etc/xml/catalog file has content, you probably + should reference it in: + $myCatalogManager + This installer can automatically add it for you, + but BE WARNED that once it has been added, the + uninstaller for this distribution CANNOT REMOVE IT + automatically during uninstall. If you no longer want + it included, you will need to remove it manually. + +EOF + REPLY="" + if [ ! "$batchmode" = "Yes" ]; then + read -s -n1 -p "Add /etc/xml/catalog to $myCatalogManager? [Yes] " + emit_message "$REPLY" + fi + case $REPLY in + [nNqQ]) + emit_message + ;; + *) + etcXmlCatalog=/etc/xml/catalog + ;; + esac + fi + + catalogBackup="$myCatalogManager.$$.bak" + if [ ! -w "${myCatalogManager%/*}" ]; then + emit_message + emit_message "WARNING: ${myCatalogManager%/*} directory is not writable." + emit_message + emitNoChangeMsg + else + REPLY="" + if [ ! "$batchmode" = "Yes" ]; then + emit_message + emit_message "Add $thisJavaXmlCatalog" + read -s -n1 -p "to $myCatalogManager file? [Yes] " + emit_message "$REPLY" + emit_message + fi + case $REPLY in + [nNqQ]) + emitNoChangeMsg + ;; + *) + if [ "$catalogsLine" ] ; then + if [ "${catalogsLine#*$thisJavaXmlCatalog*}" != "$catalogsLine" ]; then + emit_message "NOTE: $thisJavaXmlCatalog" + emit_message " already in:" + emit_message " $myCatalogManager" + else + mv $myCatalogManager $catalogBackup || exit 1 + sed "s#^catalogs=\(.*\)\$#catalogs=$thisJavaXmlCatalog;\1;$etcXmlCatalog#" $catalogBackup \ + | sed 's/;\+/;/' | sed 's/;$//' > $myCatalogManager || exit 1 + emit_message "NOTE: Successfully updated the following file:" + emit_message " $myCatalogManager" + emit_message " Backup written to:" + emit_message " $catalogBackup" + fi + else + mv $myCatalogManager $catalogBackup || exit 1 + cp $catalogBackup $myCatalogManager + echo "catalogs=$thisJavaXmlCatalog;$etcXmlCatalog" \ + | sed 's/;\+/;/' | sed 's/;$//' >> $myCatalogManager || exit 1 + emit_message "NOTE: \"catalogs=\" line added to $myCatalogManager." + emit_message " Backup written to $catalogBackup" + fi + ;; + esac + # end of backing up and updating CatalogManager.properties + fi + fi + # end of CatalogManager.properties updates + + if [ "$osName" = "Cygwin" ]; then + myCatalogManager=$(cygpath -m $myCatalogManager) + fi + return 0 +} + +writeDotFiles() { + while read; do + echo "$REPLY" >> $mydir/.profile.incl + done <<EOF +# $thisBinDir is not in PATH, so add it +if [ "\${PATH#*$thisBinDir*}" = "\$PATH" ]; then + PATH="$thisBinDir:\$PATH" + export PATH +fi +if [ -z "\$XML_CATALOG_FILES" ]; then + XML_CATALOG_FILES="$thisXmlCatalog" +else + # $thisXmlCatalog is not in XML_CATALOG_FILES, so add it + if [ "\${XML_CATALOG_FILES#*$thisXmlCatalog*}" = "\$XML_CATALOG_FILES" ]; then + XML_CATALOG_FILES="$thisXmlCatalog \$XML_CATALOG_FILES" + fi +fi +# /etc/xml/catalog exists but is not in XML_CATALOG_FILES, so add it +if [ -f /etc/xml/catalog ] && \ + [ "\${XML_CATALOG_FILES#*/etc/xml/catalog*}" = "\$XML_CATALOG_FILES" ]; then + XML_CATALOG_FILES="\$XML_CATALOG_FILES /etc/xml/catalog" +fi +export XML_CATALOG_FILES + +if [ -z "\$SGML_CATALOG_FILES" ]; then + SGML_CATALOG_FILES="$thisSgmlCatalog" +else + # $thisSgmlCatalog is not in SGML_CATALOG_FILES, so add it + if [ "\${SGML_CATALOG_FILES#*$thisSgmlCatalog}" = "\$SGML_CATALOG_FILES" ]; then + SGML_CATALOG_FILES="$thisSgmlCatalog:\$SGML_CATALOG_FILES" + fi +fi +# /etc/sgml/catalog exists but is not in SGML_CATALOG_FILES, so add it +if [ -f /etc/sgml/catalog ] && \ + [ "\${SGML_CATALOG_FILES#*/etc/sgml/catalog*}" = "\$SGML_CATALOG_FILES" ]; then + SGML_CATALOG_FILES="\$SGML_CATALOG_FILES:/etc/sgml/catalog" +fi +export SGML_CATALOG_FILES +EOF + +while read; do + echo "$REPLY" >> $mydir/.cshrc.incl +done <<EOF +# $thisBinDir is not in PATH, so add it +if ( "\\\`echo \$PATH | grep -v $thisBinDir\\\`" != "" ) then + setenv PATH "$thisBinDir:\$PATH" +endif +if ( ! $\?XML_CATALOG_FILES ) then + setenv XML_CATALOG_FILES "$thisXmlCatalog" +# $thisXmlCatalog is not in XML_CATALOG_FILES, so add it +else if ( "\\\`echo \$XML_CATALOG_FILES | grep -v $thisXmlCatalog\\\`" != "" ) then + setenv XML_CATALOG_FILES "$thisXmlCatalog \$XML_CATALOG_FILES" +endif +endif +# /etc/xml/catalog exists but is not in XML_CATALOG_FILES, so add it +if ( -f /etc/xml/catalog && "\\\`echo \$XML_CATALOG_FILES | grep -v /etc/xml/catalog\\\`" != "" ) then + setenv XML_CATALOG_FILES "\$XML_CATALOG_FILES /etc/xml/catalog" +endif + +endif +if ( ! $\?SGML_CATALOG_FILES ) then + setenv SGML_CATALOG_FILES "$thisSgmlCatalog" +else if ( "\\\`echo \$SGML_CATALOG_FILES | grep -v $thisSgmlCatalog\\\`" != "" ) then + setenv SGML_CATALOG_FILES "$thisSgmlCatalog:\$SGML_CATALOG_FILES" +endif +endif +# /etc/SGML/catalog exists but is not in SGML_CATALOG_FILES, so add it +if ( -f /etc/sgml/catalog && "\\\`echo \$SGML_CATALOG_FILES | grep -v /etc/sgml/catalog\\\`" != "" ) then + setenv SGML_CATALOG_FILES {\$SGML_CATALOG_FILES}:/etc/sgml/catalog +endif +EOF + +if [ -n "$myCatalogManager" ]; then + myCatalogManagerDir=${myCatalogManager%/*} + while read; do + echo "$REPLY" >> $mydir/.profile.incl + done <<EOF + + +if [ -z "\$CLASSPATH" ]; then + CLASSPATH="$myCatalogManagerDir" +else + # $myCatalogManagerDir is not in CLASSPATH, so add it + if [ "\${CLASSPATH#*$myCatalogManagerDir*}" = "\$CLASSPATH" ]; then + CLASSPATH="$myCatalogManagerDir$classPathSeparator\$CLASSPATH" + fi +fi +export CLASSPATH +EOF + + while read; do + echo "$REPLY" >> $mydir/.cshrc.incl + done <<EOF + + +if ( ! $\?CLASSPATH ) then + setenv CLASSPATH "$myCatalogManagerDir" +# $myCatalogManagerDir is not in CLASSPATH, so add it +else if ( "\\\`echo \$CLASSPATH | grep -v $myCatalogManagerDir\\\`" != "" ) then + setenv CLASSPATH "$myCatalogManagerDir$classPathSeparator\$CLASSPATH" +endif +endif +EOF + +fi + +while read; do + echo "$REPLY" >> $mydir/.emacs.el +done <<EOF +(add-hook + 'nxml-mode-hook + (lambda () + (setq rng-schema-locating-files-default + (append '("$thisLocatingRules") + rng-schema-locating-files-default )))) +EOF + +return 0 +} + +updateUserStartupFiles() { + if [ ! "$batchmode" = "Yes" ]; then + cat 1>&2 <<EOF + +NOTE: To source your environment correctly for using the catalog + files in this distribution, you need to update one or more + of your shell startup files. This installer can + automatically make the necessary changes. Or, if you prefer, + you can make the changes manually. + +EOF + else + emit_message + fi + + # if running csh or tcsh, target .cshrc and .tcshrc files for + # update; otherwise, target .bash_* and .profiles + + parent=$(ps -p $PPID | grep "/") + if [ "${parent#*csh}" != "$parent" ] || [ "${parent#*tcsh}" != "$parent" ]; then + myStartupFiles=".cshrc .tcshrc" + appendLine="source $mydir/.cshrc.incl" + else + myStartupFiles=".bash_profile .bash_login .profile .bashrc" + appendLine=". $mydir/.profile.incl" + fi + + for file in $myStartupFiles; do + if [ -f "$HOME/$file" ]; then + dotFileBackup=$HOME/$file.$$.bak + REPLY="" + if [ ! "$batchmode" = "Yes" ]; then + read -s -n1 -p "Update $HOME/$file? [Yes] " + emit_message "$REPLY" + fi + case $REPLY in + [nNqQ]) + cat 1>&2 <<EOF + +NOTE: No change made to $HOME/$file. You either need + to add the following line to it, or manually source + the shell environment for this distribution each + time you want use it. + +$appendLine + +EOF + ;; + *) + lineExists="$(grep "$appendLine" $HOME/$file )" + if [ ! "$lineExists" ]; then + mv $HOME/$file $dotFileBackup || exit 1 + cp $dotFileBackup $HOME/$file || exit 1 + echo "$appendLine" >> $HOME/$file || exit 1 + cat 1>&2 <<EOF +NOTE: Successfully updated the following file: + $HOME/$file + Backup written to: + $dotFileBackup + +EOF + else + cat 1>&2 <<EOF +NOTE: The following file already contains information for this + distribution, so I did not update it. + $HOME/$file + +EOF + fi + ;; + esac + fi + done + if [ -z "$dotFileBackup" ]; then + if [ ! "$batchmode" = "Yes" ]; then + emit_message + fi + cat 1>&2 <<EOF +NOTE: No shell startup files updated. You can source the + environment for this distribution manually, each time you + want to use it, by typing the following. + +$appendLine + +EOF + fi +} + +updateUserDotEmacs() { + if [ -f $thisLocatingRules ]; then + cat 1>&2 <<EOF + +NOTE: This distribution includes a "schema locating rules" file + for Emacs/nXML. To use it, you should update either your + .emacs or .emacs.el file. This installer can automatically + make the necessary changes. Or, if you prefer, you can make + the changes manually. + +EOF + + emacsAppendLine="(load-file \"$mydir/.emacs.el\")" + myEmacsFile= + for file in .emacs .emacs.el; do + if [ -f "$HOME/$file" ]; then + myEmacsFile=$HOME/$file + break + fi + done + if [ ! -f "$myEmacsFile" ]; then + REPLY="" + if [ ! "$batchmode" = "Yes" ]; then + read -s -n1 -p "No .emacs or .emacs.el file. Create one? [No] " + emit_message "$REPLY" + emit_message + fi + case $REPLY in + [yY]) + myEmacsFile=$HOME/.emacs + touch $myEmacsFile + ;; + *) + cat 1>&2 <<EOF +NOTE: No Emacs changes made. To use this distribution with, + Emacs/nXML, you can create a .emacs file and manually add + the following line to it, or you can run it as a command + within Emacs. + +$emacsAppendLine + +EOF + ;; + esac + fi + if [ -n "$myEmacsFile" ]; then + REPLY="" + if [ ! "$batchmode" = "Yes" ]; then + read -s -n1 -p "Update $myEmacsFile? [Yes] " + emit_message "$REPLY" + emit_message + fi + case $REPLY in + [nNqQ]) + cat 1>&2 <<EOF + +NOTE: No change made to $myEmacsFile. To use this distribution + with Emacs/nXML, you can manually add the following line + to your $myEmacsFile, or you can run it as a command + within Emacs. + +$emacsAppendLine + +EOF + ;; + *) + lineExists="$(grep "$emacsAppendLine" $myEmacsFile)" + if [ ! "$lineExists" ]; then + dotEmacsBackup=$myEmacsFile.$$.bak + mv $myEmacsFile $dotEmacsBackup || exit 1 + cp $dotEmacsBackup $myEmacsFile || exit 1 + echo "$emacsAppendLine" >> $myEmacsFile || exit 1 + cat 1>&2 <<EOF +NOTE: Successfully updated the following file: + $myEmacsFile + Backup written to: + $dotEmacsBackup +EOF + else + cat 1>&2 <<EOF + +NOTE: The following file already contains information for this + distribution, so I did not update it. + $myEmacsFile + +EOF + fi + ;; + esac + fi +fi +} + +uninstall() { + if [ ! "$batchmode" = "Yes" ]; then + cat 1>&2 <<EOF + +NOTE: To "uninstall" this distribution, the changes made to your + CatalogManagers.properties, startup files, and/or .emacs + file need to be reverted. This uninstaller can automatically + revert them. Or, if you prefer, you can revert them manually. + +EOF + fi + + if [ "$osName" = "Cygwin" ]; then + thisXmlCatalog=$thisJavaXmlCatalog + fi + + # make "escaped" version of PWD to use with sed and grep + escapedPwd=$(echo $mydir | sed "s#/#\\\\\/#g") + + # check to see if a non-empty value for catalogManager was fed + # to uninstaller. + if [ -n ${1#--catalogManager=} ]; then + myCatalogManager=${1#--catalogManager=} + catalogBackup="$myCatalogManager.$$.bak" + catalogsLine=$(grep "^catalogs=" $myCatalogManager) + if [ "$catalogsLine" ] ; then + if [ "${catalogsLine#*$thisXmlCatalog*}" != "$catalogsLine" ]; then + REPLY="" + if [ ! "$batchmode" = "Yes" ]; then + read -s -n1 -p "Revert $myCatalogManager? [Yes] " + emit_message "$REPLY" + fi + case $REPLY in + [nNqQ]*) + cat 1>&2 <<EOF + +NOTE: No change made to $myCatalogManager. You need to manually + remove the following path from the "catalog=" line. + + $thisXmlCatalog + +EOF + ;; + *) + mv $myCatalogManager $catalogBackup || exit 1 + sed "s#^catalogs=\(.*\)$thisXmlCatalog\(.*\)\$#catalogs=\1\2#" $catalogBackup \ + | sed 's/;\+/;/' | sed 's/;$//' | sed 's/=;/=/' > $myCatalogManager || exit 1 + cat 1>&2 <<EOF +NOTE: Successfully updated the following file: + $myCatalogManager + Backup written to: + $catalogBackup + +EOF + ;; + esac + else + emit_message "NOTE: No data for this distribution found in:" + emit_message " $myCatalogManager" + emit_message + fi + else + cat 1>&2 <<EOF +NOTE: No data for this distribution was found in the following + file, so I did not revert it. + $myCatalogManager +EOF + fi + fi + + if [ -n "$myEmacsFile" ]; then + # check to see if a non-empty value for --dotEmacs file was fed + # to uninstaller. + if [ -n ${2#--dotEmacs=} ]; then + myEmacsFile=${2#--dotEmacs=} + revertLine="(load-file \"$escapedPwd\/\.emacs\.el\")" + loadLine="$(grep "$revertLine" "$myEmacsFile")" + if [ -n "$loadLine" ]; then + emit_message + REPLY="" + if [ ! "$batchmode" = "Yes" ]; then + read -s -n1 -p "Revert $myEmacsFile? [Yes] " + emit_message "$REPLY" + fi + case $REPLY in + [nNqQ]*) + cat 1>&2 <<EOF + +NOTE: No change made to $myEmacsFile. You need to manually +remove the following line. + +(load-file \"$mydir/.emacs.el\") + +EOF + ;; + *) + dotEmacsBackup=$myEmacsFile.$$.bak + sed -e "/$revertLine/d" -i".$$.bak" $myEmacsFile || exit 1 + cat 1>&2 <<EOF +NOTE: successfully reverted the following file: + $myEmacsFile + Backup written to: + $dotEmacsBackup + +EOF + ;; + esac + else + emit_message "NOTE: No data for this distribution found in:" + emit_message " $myEmacsFile" + fi + fi + fi + + # check all startup files + myStartupFiles=".bash_profile .bash_login .profile .bashrc .cshrc .tcshrc" + for file in $myStartupFiles; do + if [ -e "$HOME/$file" ]; then + case $file in + .tcshrc|.cshrc) + revertLine="source $mydir/.cshrc.incl" + revertLineEsc="source $escapedPwd\/\.cshrc\.incl" + ;; + *) + revertLine=". $mydir/.profile.incl" + revertLineEsc="\. $escapedPwd\/\.profile\.incl" + ;; + esac + lineExists="$(grep "$revertLineEsc" $HOME/$file )" + if [ "$lineExists" ]; then + REPLY="" + if [ ! "$batchmode" = "Yes" ]; then + read -s -n1 -p "Update $HOME/$file? [Yes] " + emit_message "$REPLY" + fi + case $REPLY in + [nNqQ]*) + cat 1>&2 <<EOF + +NOTE: No change made to $HOME/$file. You need to manually remove + the following line from it. + + $revertLine + +EOF + ;; + *) + dotFileBackup=$HOME/$file.$$.bak + sed -e "/$revertLineEsc/d" -i".$$.bak" $HOME/$file || exit 1 + cat 1>&2 <<EOF +NOTE: Successfully updated the following file: + $HOME/$file + Backup written to: + $dotFileBackup + +EOF + ;; + esac + else + emit_message "NOTE: No data for this distribution found in:" + emit_message " $HOME/$file" + emit_message + fi + fi + done + removeOldFiles + emit_message "Done. Deleted uninstall.sh file." + rm -f $mydir/test.sh || exit 1 + rm -f $mydir/uninstall.sh || exit 1 +} + +writeUninstallFile() { + uninstallFile=$mydir/uninstall.sh + echo '#!/bin/bash' > $uninstallFile || exit 1 + echo 'mydir=$(cd -P $(dirname $0) && pwd -P)' >> $uninstallFile || exit 1 + echo "\$mydir/install.sh \\" >> $uninstallFile || exit 1 + echo " --uninstall \\" >> $uninstallFile || exit 1 + echo " --catalogManager=$myCatalogManager \\" >> $uninstallFile || exit 1 + echo " --dotEmacs='$myEmacsFile' \\" >> $uninstallFile || exit 1 + echo ' $@' >> $uninstallFile || exit 1 + chmod 755 $uninstallFile || exit 1 +} + +writeTestFile() { + testFile=$mydir/test.sh + echo "#!/bin/bash" > $testFile || exit 1 + echo 'mydir=$(cd -P $(dirname $0) && pwd -P)' >> $testFile || exit 1 + echo '$mydir/install.sh --test' >> $testFile || exit 1 + chmod 755 $testFile || exit 1 +} + +printExitMessage() { + cat 1>&2 <<EOF +To source your shell environment for this distribution, type the +following: + +$appendLine + +EOF +} + +checkForResolver() { + resolverResponse="$(java org.apache.xml.resolver.apps.resolver uri -u foo 2>/dev/null)" + if [ -z "$resolverResponse" ]; then + cat 1>&2 <<EOF + +NOTE: Your environment does not seem to contain the Apache XML + Commons Resolver; without that, you can't use XML catalogs + with Java applications. For more information, see the "How + to use a catalog file" section in Bob Stayton's "DocBook + XSL: The Complete Guide" + + http://sagehill.net/docbookxsl/UseCatalog.html + +EOF + fi +} + +emitNoChangeMsg() { + cat 1>&2 <<EOF + +NOTE: No changes were made to CatalogManagers.properties. To + provide your Java tools with XML catalog information for + this distribution, you will need to make the appropriate + changes manually. + +EOF +} + +testCatalogs() { + if [ ! -f "$thisXmlCatalog" ]; then + cat 1>&2 <<EOF + +FATAL: $thisXmlCatalog file needed but not found. Stopping. +EOF + exit + fi + + if [ -z "$XML_CATALOG_FILES" ]; then + emit_message + emit_message "WARNING: XML_CATALOG_FILES not set. Not testing with xmlcatalog." + else + xmlCatalogResponse="$(xmlcatalog 2>/dev/null)" + if [ -z "$xmlCatalogResponse" ]; then + cat 1>&2 <<EOF + +WARNING: Cannot locate the "xmlcatalog" command. Make sure that + you have libxml2 and its associated utilities installed. + + http://xmlsoft.org/ + +EOF + else + emit_message "Testing with xmlcatalog..." + # read in pathname-uri pairs from .urilist file + while read pair; do + if [ ! "${pair%* *}" = "." ]; then + path=$mydir/${pair%* *} + else + path=$mydir/ + fi + uri=${pair#* *} + emit_message + emit_message " Tested: $uri" + for catalog in $XML_CATALOG_FILES; do + response="$(xmlcatalog $catalog $uri| grep -v "No entry")" + if [ -n "$response" ]; then + if [ "$response" = "$path" ]; then + emit_message " Result: $path" + break + else + emit_message " Result: FAILED" + fi + fi + done + done < $mydir/.urilist + fi + fi + + if [ -z "$CLASSPATH" ]; then + emit_message + emit_message "NOTE: CLASSPATH not set. Not testing with Apache XML Commons Resolver." + else + if [ "$(checkForResolver)" ]; then + checkForResolver + else + emit_message + emit_message "Testing with Apache XML Commons Resolver..." + # read in pathname-uri pairs from .urilist file + while read pair; do + if [ ! "${pair%* *}" = "." ]; then + path=$mydir/${pair%* *} + else + path=$mydir/ + fi + uri=${pair#* *} + emit_message + emit_message " Tested: $uri" + if [ ${uri%.dtd} != $uri ]; then + response="$(java org.apache.xml.resolver.apps.resolver system -s $uri | grep "Result")" + else + response="$(java org.apache.xml.resolver.apps.resolver uri -u $uri | grep "Result")" + fi + if [ "$response" ]; then + if [ "${response#*$path}" != "$response" ]; then + emit_message " Result: $path" + else + emit_message " Result: FAILED" + fi + echo + fi + done < $mydir/.urilist + fi + fi +} + +# get opts and execute appropriate function +case $1 in + *-uninstall) + uninstall $2 $3 $4 + ;; + *-test) + testCatalogs + ;; + *) + main + ;; +esac + +# Copyright +# --------- +# Copyright 2005-2007 Michael(tm) Smith <[hidden email]> +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, copy, +# modify, merge, publish, distribute, sublicense, and/or sell copies +# of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# vim: number Propchange: ofbiz/trunk/applications/content/template/docbook/install.sh ------------------------------------------------------------------------------ svn:eol-style = LF Propchange: ofbiz/trunk/applications/content/template/docbook/install.sh ------------------------------------------------------------------------------ svn:executable = * Propchange: ofbiz/trunk/applications/content/template/docbook/install.sh ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id |
| Free forum by Nabble | Edit this page |
