File indexing completed on 2024-04-14 03:40:10

0001 #!/bin/bash
0002 #
0003 # generate_voices_rcc.sh
0004 # 
0005 #=============================================================================
0006 # SPDX-FileCopyrightText: 2014 Holger Kaelberer <holger.k@elberer.de>
0007 #
0008 # SPDX-License-Identifier: GPL-3.0-or-later
0009 #=============================================================================
0010 # 
0011 # Generates Qt binary resource files (.rcc) for voices locales.
0012 #
0013 # Usage:
0014 # cd git/GCompris-voices/
0015 # generate_voices_rcc.sh
0016 #
0017 # Results will be written to $PWD/.rcc/ which is supposed be synced to the
0018 # upstream location.
0019 # 
0020 
0021 QRC_DIR="."
0022 RCC_DIR=".rcc"
0023 RCC_DEFAULT=`which rcc 2>/dev/null`   # default, better take /usr/bin/rcc?
0024 CONTENTS_FILE=Contents
0025 MD5SUM=/usr/bin/md5sum
0026 
0027 [ -z "${RCC}" ] && RCC=${RCC_DEFAULT}
0028 
0029 [ -z "${RCC}" ] && {
0030     echo "No rcc command in PATH, can't continue. Try to set specify RCC in environment:"
0031     echo "RCC=/path/to/qt/bin/rcc $0"
0032     exit 1
0033 }
0034 
0035 echo "Generating binary resource files in ${RCC_DIR}/ folder:"
0036 
0037 [ -d ${RCC_DIR} ] && rm -rf ${RCC_DIR}
0038 mkdir  ${RCC_DIR}
0039 
0040 for LANG in `find . -maxdepth 1 -regextype posix-egrep -type d -regex "\./[a-z]{2,3}(_[A-Z]{2,3})?"`; do
0041     QRC_FILE="${QRC_DIR}/voices-${LANG#./}.qrc"
0042     RCC_FILE="${RCC_DIR}/voices-${LANG#./}.rcc"
0043     
0044     # Generate QRC:
0045     echo -n "  ${LANG#./}: ${QRC_FILE} ... "
0046     # check for junk in the voices dirs:
0047     if [ ! -z "`git status --porcelain ${LANG} | grep '^??'`" ]; then
0048         echo "Found untracked files in your git checkout below ${LANG}. Better "git clean -f" it first!";
0049         exit 1;
0050     fi
0051     [ -e ${QRC_FILE} ] && rm ${QRC_FILE}
0052     
0053     #header:
0054     (cat <<EOHEADER
0055 <!DOCTYPE RCC><RCC version="1.0">
0056 <qresource>
0057 EOHEADER
0058 ) >> $QRC_FILE
0059     for i in `find ${LANG} -not -type d`; do
0060         echo "    <file>${i#./}</file>" >> $QRC_FILE
0061     done
0062     #footer:
0063     (cat <<EOFOOTER
0064 </qresource>
0065 </RCC>
0066 EOFOOTER
0067 ) >> $QRC_FILE
0068 
0069     # Generate RCC
0070     echo -n "${RCC_FILE} ... "
0071     ${RCC} -binary ${QRC_FILE} -o ${RCC_FILE}
0072     
0073     echo "md5sum ... "
0074     cd ${RCC_DIR}
0075     ${MD5SUM} `basename ${RCC_FILE}` >>${CONTENTS_FILE}
0076     cd - &>/dev/null
0077 done
0078 
0079 #cleanup:
0080 rm *.qrc
0081 
0082 echo "Finished! Now do something like:"
0083 echo "rsync -avx ${RCC_DIR}/  www.gcompris.net:/path/to/www/gcompris/data/voices/"
0084 #EOF