util/gen_xmlpool: use argparse for argument handling
authorDylan Baker <dylan@pnwbakers.com>
Fri, 24 Aug 2018 13:28:41 +0000 (06:28 -0700)
committerDylan Baker <dylan@pnwbakers.com>
Wed, 31 Oct 2018 23:37:12 +0000 (16:37 -0700)
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 <eric.engestrom@intel.com>
src/util/xmlpool/gen_xmlpool.py

index 56a67bcab55eba487e92d92ae6271c02e52d5b8a..b40f295738e8088fd444f95d70a9bd5a8b02375d 100644 (file)
@@ -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: