From 2857b18991f86940af5759664a961a24d90e3a47 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Fri, 24 Aug 2018 06:28:41 -0700 Subject: [PATCH] util/gen_xmlpool: use argparse for argument handling This is a little cleaner than just looking at sys.argv, but it's also going to allow us to handle the differences in the way meson and autotools handle translations more cleanly. Reviewed-by: Eric Engestrom --- src/util/xmlpool/gen_xmlpool.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/util/xmlpool/gen_xmlpool.py b/src/util/xmlpool/gen_xmlpool.py index 56a67bcab55..b40f295738e 100644 --- a/src/util/xmlpool/gen_xmlpool.py +++ b/src/util/xmlpool/gen_xmlpool.py @@ -9,25 +9,23 @@ from __future__ import print_function +import argparse import io import sys import gettext import re +parser = argparse.ArgumentParser() +parser.add_argument('template') +parser.add_argument('localedir') +parser.add_argument('languages', nargs='*') +args = parser.parse_args() if sys.version_info < (3, 0): gettext_method = 'ugettext' else: gettext_method = 'gettext' -# Path to t_options.h -template_header_path = sys.argv[1] - -localedir = sys.argv[2] - -# List of supported languages -languages = sys.argv[3:] - # Escape special characters in C strings def escapeCString (s): escapeSeqs = {'\a' : '\\a', '\b' : '\\b', '\f' : '\\f', '\n' : '\\n', @@ -166,9 +164,9 @@ def expandMatches (matches, translations, end=None): # Compile a list of translation classes to all supported languages. # The first translation is always a NullTranslations. translations = [("en", gettext.NullTranslations())] -for lang in languages: +for lang in args.languages: try: - trans = gettext.translation ("options", localedir, [lang]) + trans = gettext.translation ("options", args.localedir, [lang]) except IOError: sys.stderr.write ("Warning: language '%s' not found.\n" % lang) continue @@ -188,7 +186,7 @@ print("/***********************************************************************\ # Process the options template and generate options.h with all # translations. -template = io.open (template_header_path, mode="rt", encoding='utf-8') +template = io.open (args.template, mode="rt", encoding='utf-8') descMatches = [] for line in template: if len(descMatches) > 0: -- 2.30.2