#!/bin/bash # Requires `pip install dennis` for po linting. # syntax: # compile-mo.sh locale-dir/ function usage() { echo "syntax:" echo "compile-mo.sh locale-dir/" exit 1 } # check if file and dir are there if [[ ($# -ne 1) || (! -d "$1") ]]; then usage; fi hash dennis-cmd 2>/dev/null || source $VENV/bin/activate echo "compiling messages.po..." for pofile in `find $1 -type f -name "messages.po"`; do dir=`dirname $pofile` lang=`echo $pofile | cut -d "/" -f2` stem=`basename $pofile .po` if [ $lang != 'dbg' ] then # lint the .po file dennis-cmd lint -q --errorsonly "$pofile" fi if [ $? -ne 0 ] then echo "Skipping $pofile, errors detected. Run the following to list errors:" echo "dennis-cmd lint --errorsonly $pofile" else msgfmt -o ${dir}/${stem}.mo $pofile fi done echo echo "compiling javascript.po..." for pofile in `find $1 -type f -name "javascript.po"`; do dir=`dirname $pofile` lang=`echo $pofile | cut -d "/" -f2` stem=`basename $pofile .po` touch "${dir}/${stem}.mo" if [ $lang != 'dbg' ] then # lint the .po file dennis-cmd lint -q --errorsonly "$pofile" fi if [ $? -ne 0 ] then echo "Skipping $pofile, errors detected. Run the following to list errors:" echo "dennis-cmd lint --errorsonly $pofile" else msgfmt -o ${dir}/${stem}.mo $pofile fi done