File indexing completed on 2024-02-25 03:45:24

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 
0051     cd - &>/dev/null
0052 }
0053 
0054 function header_rcc {
0055 (cat <<EOHEADER
0056 <!DOCTYPE RCC><RCC version="1.0">
0057 <qresource prefix="/gcompris/data">
0058 EOHEADER
0059 ) > $1
0060 }
0061 
0062 function footer_rcc {
0063 (cat <<EOFOOTER
0064 </qresource>
0065 </RCC>
0066 EOFOOTER
0067 ) >> $1
0068 }
0069 
0070 echo "Generating binary resource files in ${RCC_DIR}/ folder:"
0071 
0072 [ -d ${RCC_DIR} ] && rm -rf ${RCC_DIR}
0073 mkdir  ${RCC_DIR}
0074 
0075 #header of the global qrc (all the langs)
0076 QRC_FULL_FILE="${QRC_DIR}/backgroundMusic-${CA}.qrc"
0077 RCC_FULL_FILE="${RCC_DIR}/backgroundMusic-${CA}-${LAST_UPDATE_DATE}.rcc"
0078 header_rcc $QRC_FULL_FILE
0079 
0080 for i in `find backgroundMusic -type f -name "*.$CA" | sort | cut -c 1-`
0081 do
0082         echo "    <file>${i#${MUSIC_DIR}}</file>" >> "${QRC_DIR}/backgroundMusic-${CA}.qrc"
0083 done
0084 footer_rcc $QRC_FULL_FILE
0085 echo -n "  full: ${QRC_FULL_FILE} ... "
0086 generate_rcc ${QRC_FULL_FILE} ${RCC_FULL_FILE}
0087 
0088 echo "Finished!"
0089 echo ""
0090 
0091 #EOF
0092 
0093