#!/usr/bin/python import sys, os, argparse, ConfigParser default_filename='platforms.config' def list_platforms(): for p in platforms: print p def shortlist_platforms(): for p in platforms: print p, def get_images(): if args.platform: try: value = config.get(args.platform, "EXTRA_FILES") print value, except: pass try: value = config.get(args.platform, "BUILD_ATF") if value == "yes": print "bl1.bin fip.bin" return True except: try: value = config.get(args.platform, "UEFI_BIN") print value return True except: print "No images found!" else: print "No platform specified!" return False def get_option(): if args.platform: if args.option: try: value = config.get(args.platform, args.option) if value: print value return True except: return True # Option not found, return True, and no output else: print "No option specified!" else: print "No platform specified!" return False parser = argparse.ArgumentParser(description='Parses platform configuration for Linaro UEFI build scripts.') parser.add_argument('-c', '--config-file', help='Specify a non-default platform config file.', required=False) parser.add_argument('-p', '--platform', help='Read configuration for PLATFORM only.', required=False) parser.add_argument('command', action="store", help='Action to perform') parser.add_argument('-o', '--option', help='Option to retreive') args = parser.parse_args() if args.config_file: config_filename = args.config_file else: config_filename = os.path.dirname(os.path.realpath(sys.argv[0])) + '/' + default_filename config = ConfigParser.ConfigParser() config.read(config_filename) platforms = config.sections() commands = {"shortlist": shortlist_platforms, "list": list_platforms, "images": get_images, "get": get_option} try: retval = commands[args.command]() except: print ("Unrecognized command '%s'" % args.command) if retval != True: sys.exit(1)