#!/usr/bin/env python
# encoding: utf-8

Import('env')
Import('create_uninstall_target')
Import('VERSION_MAJOR')
Import('VERSION_MINOR')
Import('VERSION_PATCH')


import os
import subprocess

if env['HAVE_MSGFMT']:
    for src in env.Glob('*.po'):
        lang = os.path.basename(src.get_abspath()[:-3])
        dest = lang + '.mo'

        cmd = env.AlwaysBuild(
            env.Command(dest, src, 'msgfmt $SOURCE -o $TARGET')
        )

        path = '$PREFIX/share/locale/%s/LC_MESSAGES/rmlint.mo' % lang

        if 'install' in COMMAND_LINE_TARGETS:
            target = env.InstallAs(path, dest)
            env.Depends(target, cmd)
            env.Alias('install', [target])

        if 'uninstall' in COMMAND_LINE_TARGETS:
            create_uninstall_target(env, path)


def xgettext(target=None, source=None, env=None):
    Exit(subprocess.call(
        'xgettext --package-name rmlint -k_ -kN_ ' \
        '--package-version {}.{}.{} --default-domain rmlint ' \
        '--output po/rmlint.pot ' \
        '--from-code UTF-8 ' \
        '$(find src lib -iname "*.[ch]") &&' \
        'sed -i "s/CHARSET/UTF-8/g" po/rmlint.pot'.format(
            VERSION_MAJOR,
            VERSION_MINOR,
            VERSION_PATCH
        ),
        shell=True
    ))


if 'xgettext' in COMMAND_LINE_TARGETS:
    env.Alias(
        'xgettext',
        env.Command('xgettext', None, Action(xgettext, "Running xgettext"))
    )
