#!/usr/bin/env python

import argparse
from jtlocalize.genstrings import GenerateStringsFileOperation
from jtlocalize.merge_translations import MergeTranslationsOperation
from jtlocalize.mock_translate import MockTranslateOperation
from jtlocalize.prepare_for_translation import PrepareForTranslationOperation


def jtlocalize():
    """
    Will configure an arguments parser that runs one of the possible command line operations, and run it
    """
    all_operations = [GenerateStringsFileOperation(), PrepareForTranslationOperation(), MergeTranslationsOperation(),
                      MockTranslateOperation()]

    parser = argparse.ArgumentParser(description='Command line interface for the JTLocalize iOS localization framework')

    subparsers = parser.add_subparsers(title="operation",
                                       help="The type of localization operation.")

    for operation in all_operations:
        sub_parser = subparsers.add_parser(operation.name(), help=operation.description())
        operation.configure_parser(sub_parser)
        sub_parser.set_defaults(run=operation.run)

    args = parser.parse_args()
    args.run(args)

if __name__ == "__main__":
    jtlocalize()
