#! /usr/bin/python

import sys

map_fn = 'debian/module-po.map'
help_submodules = set(['sbasic', 'scalc', 'schart', 'sdraw',
                       'shared', 'simpress', 'smath', 'swriter'])

def read_map(fn):
    modules = {}
    for line in file(fn):
        module, poname = line.split()
        modules[module] = poname
    for submod in help_submodules:
        modules['helpcontent2-' + submod] = 'ooo-help-' + submod
        modules['helpcontent2-' + submod + '-guide'] = 'ooo-guide-' + submod
    return modules

def split(fn, dir, modules):
    polists= {}
    for poname in set(modules.values()):
        polists[poname] = []
    polists['ooo-unknown'] = []

    for line in file(fn):
        module, source = line.split(None, 2)[:2]
        if module == 'helpcontent2':
            try:
                submodule = source.split('\\')[2]
                if submodule in help_submodules:
                    module = module + '-' + submodule
                    if '\\guide\\' in source:
                        module = module + '-guide'
            except:
                pass
        polists[modules.get(module,'ooo-unknown')].append(line)

    if polists['ooo-unknown'] == []:
        del polists['ooo-unknown']
    for poname in polists.keys():
        if len(polists[poname]) == 0:
            continue
        fd = file('%s/%s.sdf' % (dir, poname), 'w')
        fd.writelines(polists[poname])
        fd.close()

def main():
    modules = read_map(map_fn)
    if len(sys.argv) != 3:
        print 'usage: splitgsi <gsi file> <target_dir>'
        sys.exit(1)
    gsi_fn = sys.argv[1]
    target_dir = sys.argv[2]

    split(gsi_fn, target_dir, modules)

main()
