diff options
Diffstat (limited to 'poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py')
-rw-r--r-- | poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py | 86 |
1 files changed, 32 insertions, 54 deletions
diff --git a/poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py b/poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py index e369f7445..86c7c1811 100644 --- a/poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py +++ b/poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy/template.py @@ -28,26 +28,23 @@ # of the executable from argv[0] and emulate the corresponding program, so # multiple copies of this script will exist under different names. -import sys, os +import sys, os, argparse -olong = "--output=" -Elong = "--macro-expand=" - -this_binary = sys.argv[0].split ("/")[-1] +this_binary = sys.argv[0].split("/")[-1] # To be outputted if functionality that hasn't been stubbed yet is invoked. stub_msg = """ -This stand-in version of %s is not yet fully capable of emulating the real -version from the GNU texinfo suite. If you see this message, file a bug report -with details on the recipe that failed. +This stand-in version of %s is not yet fully capable of emulating +the real version from the GNU texinfo suite. If you see this message, file a +bug report with details on the recipe that failed. """ % this_binary # Autotools setups query the version, so this is actually necessary. Some of # them (lookin' at you, glibc) actually look for the substring "GNU texinfo," # so we put that substring in there without actually telling a lie. -version_str = """ %s (fake texinfo, emulating GNU texinfo) 5.2 - +version_str = """%s (fake texinfo, emulating GNU texinfo) 5.2 + Super amazing version which is totally not fake in any way whatsoever. Copyright (C) 2014 Intel Corp. Distributed under the terms of the MIT license. @@ -55,63 +52,45 @@ license. simple_binaries = "pod2texi texi2dvi pdftexi2dvi texindex texi2pdf \ txixml2texi install-info ginstall-info \ - update-info-dir".split () + update-info-dir".split() # These utilities use a slightly different set of options and flags. -complex_binaries = "makeinfo texi2any".split () +complex_binaries = "makeinfo texi2any".split() valid_binaries = simple_binaries + complex_binaries -# For generating blank output files. -def touch_file (path): - f = open (path, "w") - f.close () - assert this_binary in valid_binaries, \ - this_binary + " is not one of " + ', '.join (valid_binaries) - -if "--version" in sys.argv: - print(version_str) - sys.exit (0) + this_binary + " is not one of " + ', '.join(valid_binaries) # For debugging log_interceptions = False if log_interceptions: - f = open ("/tmp/intercepted_" + this_binary, "a") - f.write (' '.join ([this_binary] + sys.argv[1:]) + '\n') - f.close () + with open("/tmp/intercepted_" + this_binary, "a") as f: + f.write(' '.join([this_binary] + sys.argv[1:]) + '\n') # Look through the options and flags, and if necessary, touch any output # files. -arg_idx = 1 -while arg_idx < len (sys.argv): - arg = sys.argv [arg_idx] - - if arg == "--": - break - - # Something like -I . can result in a need for this (specifically the .) - elif len (arg) < 2: +p = argparse.ArgumentParser() +if this_binary in complex_binaries: + p.add_argument('-E', '--macro-expand', metavar='FILE') +p.add_argument('-o', '--output', metavar='DEST') +p.add_argument('--version', action='store_true') + +args, unknown = p.parse_known_args() + +if args.version: + print(version_str) + sys.exit(0) + +# Check for functionality that isn't implemented yet. +assert not getattr(args, 'macro_expand', None), \ + "-E/--macro-expand option not yet supported" + stub_msg + +# Check if -o or --output is specified. +if args.output: + with open(args.output, 'w'): pass - - # Check if -o or --output is specified. These can be used at most once. - elif arg[0] == '-' and arg[1] != '-' and arg[len (arg) - 1] == 'o': - touch_file (sys.argv[arg_idx + 1]) - sys.exit (0) - elif arg.startswith (olong): - touch_file (arg.split ("=")[1]) - sys.exit (0) - - # Check for functionality that isn't implemented yet. - else: - assert arg[0] != '-' or arg[1] == '-' or 'E' not in arg or \ - this_binary in simple_binaries, \ - "-E option not yet supported" + stub_msg - - assert not arg.startswith (Elong), \ - Elong[:-1] + " option not yet supported" + stub_msg - - arg_idx += 1 + sys.exit(0) # The -o/--output option overrides the default. For makeinfo and texi2any, # that default is to look for a @setfilename command in the input file. @@ -119,4 +98,3 @@ while arg_idx < len (sys.argv): assert this_binary in simple_binaries, \ "Don't know how to get default output file name from input file!" + \ stub_msg - |