summaryrefslogtreecommitdiffstats
path: root/dev/mogen
blob: 0b3568adbf473333a0e20df2638e505d9e7cb50d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/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 "$@"