|
|
86e000 |
#!/bin/bash
|
|
|
86e000 |
#
|
|
|
86e000 |
# docbook_expandLicenses.sh -- This function modifies the final
|
|
|
86e000 |
# DocBook instance to add license information. We are doing this way
|
|
|
86e000 |
# because using XInclude doesn't work and we want to reuse license
|
|
|
86e000 |
# information in all documents. So, if we cannot link the files, we
|
|
|
86e000 |
# modify the final instance and append the license information to it.
|
|
|
86e000 |
# Later, to reuse translation messages, the locale functionality takes
|
|
|
86e000 |
# care of merging po files related to licenses into documentation po
|
|
|
86e000 |
# file so changes made to licenses translations will also be available
|
|
|
86e000 |
# to documentation manuals in different languages.
|
|
|
86e000 |
#
|
|
|
077011 |
# Copyright (C) 2009, 2010, 2011, 2012 The CentOS Project
|
|
|
86e000 |
#
|
|
|
86e000 |
# This program is free software; you can redistribute it and/or modify
|
|
|
86e000 |
# it under the terms of the GNU General Public License as published by
|
|
|
86e000 |
# the Free Software Foundation; either version 2 of the License, or (at
|
|
|
86e000 |
# your option) any later version.
|
|
|
86e000 |
#
|
|
|
86e000 |
# This program is distributed in the hope that it will be useful, but
|
|
|
86e000 |
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
86e000 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
86e000 |
# General Public License for more details.
|
|
|
86e000 |
#
|
|
|
86e000 |
# You should have received a copy of the GNU General Public License
|
|
|
86e000 |
# along with this program; if not, write to the Free Software
|
|
|
86e000 |
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
86e000 |
#
|
|
|
86e000 |
# ----------------------------------------------------------------------
|
|
|
86e000 |
# $Id$
|
|
|
86e000 |
# ----------------------------------------------------------------------
|
|
|
86e000 |
|
|
|
86e000 |
function docbook_expandLicenses {
|
|
|
86e000 |
|
|
|
86e000 |
local INSTANCE=$1
|
|
|
86e000 |
|
|
|
2321ce |
# Define absolute path to Docbook models.
|
|
|
2321ce |
local DOCBOOK_MODELS="${TCAR_WORKDIR}/trunk/Documentation/Models/Docbook"
|
|
|
2321ce |
|
|
|
86e000 |
# Define list of files holding licenses you want to include. Note
|
|
|
86e000 |
# even this files are not inside the documentation structure
|
|
|
86e000 |
# itself, they are connected with it. The files holding license
|
|
|
86e000 |
# information does contain id information used inside the
|
|
|
86e000 |
# documentation structure at cross references.
|
|
|
2321ce |
local LICENSES="${DOCBOOK_MODELS}/Default/Licenses/gpl.docbook \
|
|
|
2321ce |
${DOCBOOK_MODELS}/Default/Licenses/gfdl.docbook"
|
|
|
86e000 |
|
|
|
86e000 |
# Define top level structure in the instance. This is the tag
|
|
|
86e000 |
# defined in the second field of DOCTYPE definition.
|
|
|
86e000 |
local DOCTYPE=$(egrep '^
|
|
|
86e000 |
| gawk '{ print $2 }')
|
|
|
86e000 |
|
|
|
86e000 |
# Define temporal file to store license block.
|
|
|
86e000 |
local BLOCK=$(cli_getTemporalFile "licenses.docbook")
|
|
|
86e000 |
|
|
|
86e000 |
# Build license block into memory.
|
|
|
86e000 |
BLOCK="\n"
|
|
|
86e000 |
BLOCK="${BLOCK}\n<part id=\"licenses\">\n"
|
|
|
86e000 |
BLOCK="${BLOCK}\n<title>`gettext "Licenses"`</title>\n"
|
|
|
86e000 |
BLOCK="${BLOCK}\n$(cat ${LICENSES} | sed -r '/<\?xml/,/]>/d')\n"
|
|
|
86e000 |
BLOCK="${BLOCK}\n</part>\n"
|
|
|
86e000 |
BLOCK="${BLOCK}\n\n"
|
|
|
86e000 |
|
|
|
86e000 |
# Expand the licenses section. Remove everything in-between
|
|
|
86e000 |
# Licenses and Back matter comment. Recreate the comments to
|
|
|
86e000 |
# support further actualizations and concatenate license
|
|
|
86e000 |
# information without their document type definitions preamble.
|
|
|
86e000 |
# This is required in order to prevent validation errors and reuse
|
|
|
86e000 |
# (through locale functionality) the translation messages already
|
|
|
86e000 |
# available for these license files. Finally, close any open tag.
|
|
|
86e000 |
sed -r -i -e "//,//c$(echo ${BLOCK})" $INSTANCE
|
|
|
86e000 |
|
|
|
86e000 |
}
|