Blame Automation/Modules/Locale/locale_setLocaleType.sh

Alain Reguera Delgado 52ee2e
#!/bin/bash
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
function locale_setLocaleType {
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
    local SECTION=''
Alain Reguera Delgado 52ee2e
    local -a SECTIONS
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
    # Define motif-specific environment variables, based on
Alain Reguera Delgado 52ee2e
    # configuration file path. These variables might save
Alain Reguera Delgado 52ee2e
    # configuration file writers from typing motif-specific
Alain Reguera Delgado 52ee2e
    # information when they produce motif-specific content. These
Alain Reguera Delgado 52ee2e
    # variables will be empty if the configuration file isn't inside
Alain Reguera Delgado 52ee2e
    # a motif-specific directory structure.
Alain Reguera Delgado 52ee2e
    MOTIF=$(tcar_getPathComponent ${CONFIGURATION} --motif)
Alain Reguera Delgado 52ee2e
    MOTIF_NAME=$(tcar_getPathComponent ${CONFIGURATION} --motif-name)
Alain Reguera Delgado 52ee2e
    MOTIF_VERSION=$(tcar_getPathComponent ${CONFIGURATION} --motif-version)
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
    # Use arrays to store section names. This make possible to make
Alain Reguera Delgado 52ee2e
    # use of post-rendition and last-rendition concepts. Otherwise it
Alain Reguera Delgado 52ee2e
    # would be difficult to predict information about sections inside
Alain Reguera Delgado 52ee2e
    # deeper environments.
Alain Reguera Delgado 52ee2e
    for SECTION in $(tcar_getConfigSectionNames "${CONFIGURATION}" \
Alain Reguera Delgado 52ee2e
        | egrep ${TCAR_FLAG_FILTER});do
Alain Reguera Delgado 52ee2e
        SECTIONS[((++${#SECTIONS[*]}))]="${SECTION}"
Alain Reguera Delgado 52ee2e
    done
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
    local COUNTER=0
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
    while [[ ${COUNTER} -lt ${#SECTIONS[*]} ]];do
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
        # Initialize array variables locally.
Alain Reguera Delgado 52ee2e
        local -a TRANSLATIONS
Alain Reguera Delgado 52ee2e
        local -a SOURCES
Alain Reguera Delgado 52ee2e
  
Alain Reguera Delgado 52ee2e
        local SECTION=${SECTIONS[${COUNTER}]}
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
        local RENDER_FROM=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "render-from")
Alain Reguera Delgado 52ee2e
        for SOURCE in ${RENDER_FROM};do
Alain Reguera Delgado 52ee2e
            if [[ ${SOURCE} =~ "^/" ]];then
Alain Reguera Delgado 52ee2e
                SOURCES[((++${#SOURCES[*]}))]=${SOURCE}
Alain Reguera Delgado 52ee2e
            else
Alain Reguera Delgado 52ee2e
                SOURCES[((++${#SOURCES[*]}))]=$(dirname ${CONFIGURATION})/${SOURCE}
Alain Reguera Delgado 52ee2e
            fi
Alain Reguera Delgado 52ee2e
        done
Alain Reguera Delgado 786ac0
        
Alain Reguera Delgado 6a1e04
        local RENDER_TYPE=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "render-type")
Alain Reguera Delgado 52ee2e
        if [[ -z ${RENDER_TYPE} ]];then
Alain Reguera Delgado 52ee2e
           RENDER_TYPE=$(echo ${SOURCES[0]} | sed -r 's/.+\.([[:alpha:]]+)$/\1/') 
Alain Reguera Delgado 52ee2e
        fi
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
        local LOCALE_FROM=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "locale-from")
Alain Reguera Delgado 52ee2e
        for TRANSLATION in ${LOCALE_FROM};do
Alain Reguera Delgado 52ee2e
            if [[ ${TRANSLATION} =~ "^/" ]];then
Alain Reguera Delgado 52ee2e
                TRANSLATIONS[((++${#TRANSLATIONS[*]}))]=${TRANSLATION}
Alain Reguera Delgado 52ee2e
            else
Alain Reguera Delgado 52ee2e
                TRANSLATIONS[((++${#TRANSLATIONS[*]}))]=$(dirname ${CONFIGURATION})/${TRANSLATION}
Alain Reguera Delgado 52ee2e
            fi
Alain Reguera Delgado 52ee2e
        done
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 6a1e04
        RENDER_FLOW=$(tcar_getConfigValue "${CONFIGURATION}" "${SECTION}" "render-flow")
Alain Reguera Delgado 6a1e04
        if [[ -z ${RENDER_FLOW} ]];then
Alain Reguera Delgado 6a1e04
            RENDER_FLOW='article'
Alain Reguera Delgado 6a1e04
        fi
Alain Reguera Delgado 6a1e04
Alain Reguera Delgado 786ac0
        PO_FILE=${TRANSLATIONS[0]}
Alain Reguera Delgado 786ac0
Alain Reguera Delgado 52ee2e
        # Initialize locale's modules.
Alain Reguera Delgado 6a1e04
        for LOCALE_ACTION in ${LOCALE_ACTIONS};do
Alain Reguera Delgado 6a1e04
            tcar_setModuleEnvironment "${LOCALE_ACTION}" "${@}"
Alain Reguera Delgado 6a1e04
        done
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
        # Increment section's counter.
Alain Reguera Delgado 52ee2e
        COUNTER=$(( ${COUNTER} + 1 ))
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
        # Reset array variable to avoid undesired concatenations
Alain Reguera Delgado 52ee2e
        # between sections blocks.
Alain Reguera Delgado 52ee2e
        unset TRANSLATIONS
Alain Reguera Delgado 52ee2e
        unset SOURCES
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
    done
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
    # Reset array variables and their counters to avoid undesired
Alain Reguera Delgado 52ee2e
    # concatenations between configuration files.
Alain Reguera Delgado 52ee2e
    unset COUNTER
Alain Reguera Delgado 52ee2e
    unset SECTIONS
Alain Reguera Delgado 52ee2e
Alain Reguera Delgado 52ee2e
}