File indexing completed on 2023-10-01 11:08:44

0001 #!/bin/bash
0002 #
0003 # generate_backgroundMusic_rcc.sh
0004 
0005 # Copyright (C) 2014 Holger Kaelberer
0006 # Copyright (C) 2016 Divyam Madaan
0007 #
0008 # Generates Qt binary resource files (.rcc) for background music.
0009 #
0010 # Results will be written to $PWD/.rcc/ which is supposed be synced to the
0011 # upstream location.
0012 #
0013 
0014 # the path depends on the distribution
0015 #export RCC=/usr/lib64/qt5/bin/rcc
0016 export RCC=/usr/bin/rcc
0017 
0018 [ $# -ne 1 ] && {
0019     echo "Usage: generate_backgroundMusic_rcc.sh ogg|aac|ac3|mp3"
0020     exit 1
0021 }
0022 # Compressed Audio Format
0023 CA=$1
0024 
0025 QRC_DIR="."
0026 RCC_DIR=".rcc"
0027 #RCC_DEFAULT=`which rcc 2>/dev/null`   # default, better take /usr/bin/rcc?
0028 RCC_DEFAULT=$Qt5_DIR/bin/rcc
0029 CONTENTS_FILE=Contents
0030 MD5SUM=/usr/bin/md5sum
0031 
0032 [ -z "${RCC}" ] && RCC=${RCC_DEFAULT}
0033 
0034 [ -z "${RCC}" ] && {
0035     echo "No rcc command in PATH, can't continue. Try to set specify RCC in environment:"
0036     echo "RCC=/path/to/qt/bin/rcc $0"
0037     exit 1
0038 }
0039 
0040 # We need to use --format-version 2 option for rcc to be retro-compatible with all our GCompris versions
0041 function generate_rcc {
0042     # Generate RCC 
0043     echo -n "$2 ... "
0044     mkdir -p ${2%/*}
0045     ${RCC} --format-version 2 --binary $1 -o $2
0046 
0047     echo "md5sum ... "
0048     cd ${2%/*}
0049     ${MD5SUM}  ${2##*/}>> ${CONTENTS_FILE}
0050     cd - &>/dev/null
0051 }
0052 
0053 function header_rcc {
0054 (cat <<EOHEADER
0055 <!DOCTYPE RCC><RCC version="1.0">
0056 <qresource prefix="/gcompris/data">
0057 EOHEADER
0058 ) > $1
0059 }
0060 
0061 function footer_rcc {
0062 (cat <<EOFOOTER
0063 </qresource>
0064 </RCC>
0065 EOFOOTER
0066 ) >> $1
0067 }
0068 
0069 echo "Generating binary resource files in ${RCC_DIR}/ folder:"
0070 
0071 [ -d ${RCC_DIR} ] && rm -rf ${RCC_DIR}
0072 mkdir  ${RCC_DIR}
0073 
0074 #header of the global qrc (all the langs)
0075 QRC_FULL_FILE="${QRC_DIR}/backgroundMusic-${CA}.qrc"
0076 RCC_FULL_FILE="${RCC_DIR}/backgroundMusic-${CA}.rcc"
0077 header_rcc $QRC_FULL_FILE
0078 
0079 for i in `find backgroundMusic -type f -name "*.$CA" | sort | cut -c 1-`
0080 do
0081         echo "    <file>${i#${MUSIC_DIR}}</file>" >> "${QRC_DIR}/backgroundMusic-${CA}.qrc"
0082 done
0083 footer_rcc $QRC_FULL_FILE
0084 echo -n "  full: ${QRC_FULL_FILE} ... "
0085 generate_rcc ${QRC_FULL_FILE} ${RCC_FULL_FILE}
0086 
0087 echo "Finished!"
0088 echo ""
0089 
0090 #EOF
0091 
0092