Mercurial > trustbridge
view packaging/getxt-gen-l10n-array.sh @ 831:747a48996c1f
(Issue13) Precompile uninstaller
Create-dist-packge now creates a temporary installer that only
writes the uninstaller. Then it excutes this installer (using wine)
to create the uninstaller. That uninstaller is then packaged
normaly and packaged instead of the written uninstaller.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Thu, 24 Jul 2014 15:59:00 +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"