#!/bin/sh

#  fetch-translations <mode> <options>
#  options:
#       --fetch <svnrootpath> <svnrelpath>
#       --pack
#       --unpack <tar ball>

# for subdirs
SVNROOTPATH=svn://anonsvn.kde.org/home/kde/branches/stable/l10n-kde4/
APPSVNROOTPATH=$SVNROOTPATH
SVNRELPATH=messages/extragear-office

fetch_translations () {
    if test -n "$2"; then
        SVNROOTPATH=$1
    fi
    if test -n "$3"; then
        SVNRELPATH=$2
    fi

SVNPATH=$APPSVNROOTPATH/@LANG@/$SVNRELPATH

    if ! test -d po; then
        mkdir -p po
    fi
    cd po

    svn co --depth=files $SVNROOTPATH .

    cat > CMakeLists.txt <<EOF
    # Search KDE installation
    find_package(KDE4 REQUIRED)
    find_package(Gettext REQUIRED)
    include (KDE4Defaults)
    include(MacroOptionalAddSubdirectory)

    if (NOT GETTEXT_MSGMERGE_EXECUTABLE)
    MESSAGE(FATAL_ERROR "Please install the msgmerge binary")
    endif (NOT GETTEXT_MSGMERGE_EXECUTABLE)

    IF(NOT GETTEXT_MSGFMT_EXECUTABLE)
    MESSAGE(FATAL_ERROR "Please install the msgfmt binary")
    endif (NOT GETTEXT_MSGFMT_EXECUTABLE)
EOF
    svn co --depth=files $SVNROOTPATH .

    for i in $(cat subdirs); do
        if ! test -d $i; then
            mkdir $i;
        fi
        if ! test -d "$i/.svn"; then
            (cd $i; p=$(echo $SVNPATH | sed "s,@LANG@,$i,g"); svn co $p .)
        fi
        if test -f $i/kmymoney.po; then
            echo "add_subdirectory($i)" >>CMakeLists.txt
            echo "GETTEXT_PROCESS_PO_FILES($i ALL INSTALL_DESTINATION \${LOCALE_INSTALL_DIR} kmymoney.po)" >$i/CMakeLists.txt
        fi
    done
}

pack_translations() {
    find po -name .svn -exec rm -rf {} \;
    find po -name *.po  | grep -v kmymoney | xargs rm
    tar -cJf translations.tar.xz po
}

unpack_translations() {
    tar -xJf $1
    a=$(grep "macro_optional_add_subdirectory( po )" CMakeLists.txt)
    if test -z "$a"; then
        echo "include(MacroOptionalAddSubdirectory)" >> CMakeLists.txt
        echo "macro_optional_add_subdirectory( po )" >> CMakeLists.txt
    fi
}

case $1 in
--fetch)
    fetch_translations
     ;;
--pack)
    pack_translations
     ;;
--unpack)
    unpack_translations $2
     ;;
esac
