#!/bin/bash # vim:et:ai:ts=4:sts=4:sw=4 DESTDIR='locale' LS_BIN='/usr/bin/ls' FIND_BIN='/usr/bin/find' TOUCH_BIN='/usr/bin/touch' SED_BIN='/usr/bin/sed' MKDIR_BIN='/usr/bin/mkdir' MSGFMT_BIN='/usr/bin/msgfmt' REALPATH_BIN="/usr/bin/realpath" DIRNAME_BIN="/usr/bin/dirname" BASENAME_BIN="/usr/bin/basename" SLEEP_BIN="/usr/bin/sleep" MYDIR="$(${DIRNAME_BIN} $(${REALPATH_BIN} $0))" DEVDIR="$(${DIRNAME_BIN} $(${DIRNAME_BIN} $(${REALPATH_BIN} $0)))" FULLDESTDIR="${DEVDIR}/${DESTDIR}" [ "x$1" == "x--watch" ] && echo "Watching po dir for .po files updates..." function updateLang () { [ ! -f "${FULLDESTDIR}/.timestamp" ] && ${TOUCH_BIN} "${FULLDESTDIR}/.timestamp" while [ 1 ] do _update=0 for _langfile in $(${FIND_BIN} ${DEVDIR}/po -name "*.po" -newer "${FULLDESTDIR}/.timestamp") do _lang="$(${BASENAME_BIN} $_langfile | ${SED_BIN} -e "s/\.po$//")" ${MKDIR_BIN} -p ${FULLDESTDIR}/${_lang}/LC_MESSAGES [ "x$1" == "x--watch" ] && [ $_update -eq 0 ] && echo "" echo "updating ${DESTDIR}/${_lang}/LC_MESSAGES/urpmi.mo" $MSGFMT_BIN "$DEVDIR/po/${_lang}.po" -o "${FULLDESTDIR}/${_lang}/LC_MESSAGES/urpmi.mo" _update=1 done [ $_update -eq 1 ] && ${TOUCH_BIN} "${FULLDESTDIR}/.timestamp" [ "x$1" != "x--watch" ] && exit echo -n "." ${SLEEP_BIN} 2 done } updateLang "$@"