Mercurial > trustbridge
view packaging/getxt-gen-l10n-array.sh @ 975:b3695a3399de
(issue86) Install into default directories on Linux
If the mozilla process is now started as root it will
try to write into the default directories for NSS Shared
and mozilla / thunderbird profiles.
Cinst will now start the mozilla process once as root.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Fri, 29 Aug 2014 12:59:44 +0200 |
parents | 6e300f749a6d |
children | 069f5e5344f6 |
line wrap: on
line source
# ------------------------------------------------------------------- # Copyright (C) 2014 by Intevation GmbH # Author(s): # Sascha Wilde <wilde@intevation.de> # This program is free software under the GNU GPL (>=v2) # Read the file COPYING coming with the software for details. # ------------------------------------------------------------------- # Extract getxt strings from source and generate an array for usage in # the script using our getxt function. # USAGE: getxt-gen-l10n-array.sh SRC ARRAYNAME ARRAYFILE # # Where SRC is the shell script using getxt and ARRAYFILE is # the file to which the generated array is to be saved. # # ARRAYNAME is the name of the associative bash array to generate. # # If ARRAYFILE exists, values already defined will be preserved, # if the MSGID still exists. # FIXME: we can't handle quoted quotes: "\"" -- don't use them for # now... declare -a MSGIDS declare -A L10N get_msgids() { while read -r id ; do if [ "$id" != '"$1"' ] ; then MSGIDS+=("$id") fi done < <( sed -n 's/.*\(getxt\|fatal\) [^"]*\("[^"]*"\).*/\2/p' "$1" | sort | uniq ) } merge_l10n() { for msgid in "${MSGIDS[@]}" ; do msg=`grep -F "[${msgid}]" "$1" | sed -n 's/.*="\(.*\)"/\1/p'` if [ "$msg" ] ; then L10N["$msgid"]="$msg" fi done } write_l10n_array() { echo "$1=(" for msgid in "${MSGIDS[@]}" ; do echo " [${msgid}]=\"${L10N[$msgid]}\"" done echo ")" } get_msgids "$1" merge_l10n "$3" write_l10n_array "$2" >"$3"