|
Alain Reguera Delgado |
2e37b0 |
#!/bin/bash
|
|
Alain Reguera Delgado |
2e37b0 |
######################################################################
|
|
Alain Reguera Delgado |
2e37b0 |
#
|
|
Alain Reguera Delgado |
2e37b0 |
# render_setRenderType.sh -- This file evaluates a configuration
|
|
Alain Reguera Delgado |
2e37b0 |
# file and determines what kind of rendition to do.
|
|
Alain Reguera Delgado |
2e37b0 |
#
|
|
Alain Reguera Delgado |
2e37b0 |
# Written by:
|
|
Alain Reguera Delgado |
809ecc |
# * Alain Reguera Delgado <al@centos.org.cu>, 2009-2013
|
|
Alain Reguera Delgado |
2e37b0 |
#
|
|
Alain Reguera Delgado |
809ecc |
# Copyright (C) 2009-2013 The CentOS Artwork SIG
|
|
Alain Reguera Delgado |
2e37b0 |
#
|
|
Alain Reguera Delgado |
2e37b0 |
# This program is free software; you can redistribute it and/or modify
|
|
Alain Reguera Delgado |
2e37b0 |
# it under the terms of the GNU General Public License as published by
|
|
Alain Reguera Delgado |
809ecc |
# the Free Software Foundation; either version 2 of the License, or (at
|
|
Alain Reguera Delgado |
809ecc |
# your option) any later version.
|
|
Alain Reguera Delgado |
2e37b0 |
#
|
|
Alain Reguera Delgado |
2e37b0 |
# This program is distributed in the hope that it will be useful, but
|
|
Alain Reguera Delgado |
2e37b0 |
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Alain Reguera Delgado |
2e37b0 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Alain Reguera Delgado |
2e37b0 |
# General Public License for more details.
|
|
Alain Reguera Delgado |
2e37b0 |
#
|
|
Alain Reguera Delgado |
2e37b0 |
# You should have received a copy of the GNU General Public License
|
|
Alain Reguera Delgado |
2e37b0 |
# along with this program; if not, write to the Free Software
|
|
Alain Reguera Delgado |
2e37b0 |
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
Alain Reguera Delgado |
2e37b0 |
#
|
|
Alain Reguera Delgado |
2e37b0 |
######################################################################
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
function render_setRenderType {
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
06ab0f |
local CONFIGURATION="${1}"
|
|
Alain Reguera Delgado |
06ab0f |
|
|
Alain Reguera Delgado |
2e37b0 |
local -a SECTIONS
|
|
Alain Reguera Delgado |
06ab0f |
local SECTION=''
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Define motif-specific environment variables, based on
|
|
Alain Reguera Delgado |
2e37b0 |
# configuration file path. These variables might save
|
|
Alain Reguera Delgado |
2e37b0 |
# configuration file writers from typing motif-specific
|
|
Alain Reguera Delgado |
2e37b0 |
# information when they produce motif-specific content. These
|
|
Alain Reguera Delgado |
2e37b0 |
# variables will be empty if the configuration file isn't inside
|
|
Alain Reguera Delgado |
2e37b0 |
# a motif-specific directory structure.
|
|
Alain Reguera Delgado |
06ab0f |
local MOTIF=$(tcar_getPathComponent ${CONFIGURATION} --motif)
|
|
Alain Reguera Delgado |
06ab0f |
local MOTIF_NAME=$(tcar_getPathComponent ${CONFIGURATION} --motif-name)
|
|
Alain Reguera Delgado |
06ab0f |
local MOTIF_VERSION=$(tcar_getPathComponent ${CONFIGURATION} --motif-version)
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Use arrays to store section names. This make possible to make
|
|
Alain Reguera Delgado |
2e37b0 |
# use of post-rendition and last-rendition concepts. Otherwise it
|
|
Alain Reguera Delgado |
2e37b0 |
# would be difficult to predict information about sections inside
|
|
Alain Reguera Delgado |
2e37b0 |
# deeper environments.
|
|
Alain Reguera Delgado |
2e37b0 |
for SECTION in $(tcar_getConfigSectionNames "${CONFIGURATION}" \
|
|
Alain Reguera Delgado |
2e37b0 |
| egrep ${TCAR_FLAG_FILTER});do
|
|
Alain Reguera Delgado |
06ab0f |
SECTIONS[++${#SECTIONS[*]}]="${SECTION}"
|
|
Alain Reguera Delgado |
2e37b0 |
done
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
local COUNTER=0
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
while [[ ${COUNTER} -lt ${#SECTIONS[*]} ]];do
|
|
Alain Reguera Delgado |
3853b9 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Initialize array variables locally.
|
|
Alain Reguera Delgado |
2e37b0 |
local -a TRANSLATIONS
|
|
Alain Reguera Delgado |
2e37b0 |
local -a SOURCES
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
SECTION=${SECTIONS[${COUNTER}]}
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
if [[ ${SECTION} =~ "^/" ]];then
|
|
Alain Reguera Delgado |
2e37b0 |
TARGET=${SECTION}
|
|
Alain Reguera Delgado |
2e37b0 |
else
|
|
Alain Reguera Delgado |
2e37b0 |
if [[ ${TCAR_SCRIPT_LANG_LC} =~ '^en' ]];then
|
|
Alain Reguera Delgado |
2e37b0 |
TARGET=$(dirname ${CONFIGURATION})/${SECTION}
|
|
Alain Reguera Delgado |
2e37b0 |
else
|
|
Alain Reguera Delgado |
2e37b0 |
TARGET=$(dirname ${CONFIGURATION})/${TCAR_SCRIPT_LANG_LC}/${SECTION}
|
|
Alain Reguera Delgado |
2e37b0 |
fi
|
|
Alain Reguera Delgado |
2e37b0 |
fi
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
RENDER_TYPE=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "render-type")
|
|
Alain Reguera Delgado |
25045c |
if [[ -z ${RENDER_TYPE} ]];then
|
|
Alain Reguera Delgado |
25045c |
tcar_printMessage "${CONFIGURATION} `gettext "hasn't render-type set in."`" --as-error-line
|
|
Alain Reguera Delgado |
25045c |
fi
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
RENDER_FROM=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "render-from")
|
|
Alain Reguera Delgado |
25045c |
if [[ -z ${RENDER_TYPE} ]];then
|
|
Alain Reguera Delgado |
25045c |
tcar_printMessage "${CONFIGURATION} `gettext "hasn't render-from set in."`" --as-error-line
|
|
Alain Reguera Delgado |
25045c |
fi
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
for SOURCE in ${RENDER_FROM};do
|
|
Alain Reguera Delgado |
2e37b0 |
if [[ ${SOURCE} =~ "^/" ]];then
|
|
Alain Reguera Delgado |
2e37b0 |
SOURCES[((++${#SOURCES[*]}))]=${SOURCE}
|
|
Alain Reguera Delgado |
2e37b0 |
else
|
|
Alain Reguera Delgado |
2e37b0 |
SOURCES[((++${#SOURCES[*]}))]=$(dirname ${CONFIGURATION})/${SOURCE}
|
|
Alain Reguera Delgado |
2e37b0 |
fi
|
|
Alain Reguera Delgado |
2e37b0 |
done
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
if [[ -z ${RENDER_TYPE} ]];then
|
|
Alain Reguera Delgado |
2e37b0 |
RENDER_TYPE=$(echo ${SOURCES[0]} | sed -r 's/.+\.([[:alpha:]]+)$/\1/')
|
|
Alain Reguera Delgado |
2e37b0 |
fi
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
LOCALE_FROM=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "locale-from")
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# When the current locale information is not English, don't
|
|
Alain Reguera Delgado |
2e37b0 |
# process section blocks unless they have any related
|
|
Alain Reguera Delgado |
2e37b0 |
# translation file. There is no need to have untranslated
|
|
Alain Reguera Delgado |
2e37b0 |
# content inside language-specific directories.
|
|
Alain Reguera Delgado |
2e37b0 |
if [[ ! ${TCAR_SCRIPT_LANG_LC} =~ '^en' ]];then
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
if [[ -z ${LOCALE_FROM} ]];then
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Increment array counter.
|
|
Alain Reguera Delgado |
2e37b0 |
COUNTER=$(( ${COUNTER} + 1 ))
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Reset array variable to avoid undesired
|
|
Alain Reguera Delgado |
2e37b0 |
# concatenations between sections blocks.
|
|
Alain Reguera Delgado |
2e37b0 |
unset TRANSLATIONS
|
|
Alain Reguera Delgado |
2e37b0 |
unset SOURCES
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Move to next section block.
|
|
Alain Reguera Delgado |
2e37b0 |
continue
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
fi
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
for TRANSLATION in ${LOCALE_FROM};do
|
|
Alain Reguera Delgado |
2e37b0 |
if [[ ${TRANSLATION} =~ "^/" ]];then
|
|
Alain Reguera Delgado |
2e37b0 |
TRANSLATIONS[((++${#TRANSLATIONS[*]}))]=${TRANSLATION}
|
|
Alain Reguera Delgado |
2e37b0 |
else
|
|
Alain Reguera Delgado |
2e37b0 |
TRANSLATIONS[((++${#TRANSLATIONS[*]}))]=$(dirname ${CONFIGURATION})/${TRANSLATION}
|
|
Alain Reguera Delgado |
2e37b0 |
fi
|
|
Alain Reguera Delgado |
2e37b0 |
done
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
786ac0 |
tcar_checkFiles -ef ${TRANSLATIONS[*]}
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
fi
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Initialize render's modules.
|
|
Alain Reguera Delgado |
2e37b0 |
case ${RENDER_TYPE} in
|
|
Alain Reguera Delgado |
2e37b0 |
"svgz" | "svg" )
|
|
Alain Reguera Delgado |
06ab0f |
tcar_setModuleEnvironment -m "svg" -t "sub-module"
|
|
Alain Reguera Delgado |
2e37b0 |
;;
|
|
Alain Reguera Delgado |
2e37b0 |
* )
|
|
Alain Reguera Delgado |
06ab0f |
tcar_setModuleEnvironment -m "${RENDER_TYPE}" -t "sub-module"
|
|
Alain Reguera Delgado |
2e37b0 |
;;
|
|
Alain Reguera Delgado |
2e37b0 |
esac
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Increment section's counter.
|
|
Alain Reguera Delgado |
2e37b0 |
COUNTER=$(( ${COUNTER} + 1 ))
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Reset array variable to avoid undesired concatenations
|
|
Alain Reguera Delgado |
2e37b0 |
# between sections blocks.
|
|
Alain Reguera Delgado |
2e37b0 |
unset TRANSLATIONS
|
|
Alain Reguera Delgado |
2e37b0 |
unset SOURCES
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
done
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
# Reset array variables and their counters to avoid undesired
|
|
Alain Reguera Delgado |
2e37b0 |
# concatenations between configuration files.
|
|
Alain Reguera Delgado |
2e37b0 |
unset COUNTER
|
|
Alain Reguera Delgado |
2e37b0 |
unset SECTIONS
|
|
Alain Reguera Delgado |
2e37b0 |
|
|
Alain Reguera Delgado |
2e37b0 |
}
|