diff options
author | Dylan Baker <baker.dylan.c@gmail.com> | 2014-07-09 15:06:50 -0700 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2014-07-13 23:31:20 -0700 |
commit | d6fcb98e1a6f99610db13feb8a794e4205fcc876 (patch) | |
tree | 9560a816a193d5e06c0891e6a28e3be89af1f706 | |
parent | 7ea8577a4124e3a354e53a013fbc221521069f0c (diff) |
run.py: use argparse instead of getopt
argparse.ArgumentParser() is a modern way of parser argument in python,
it's object oriented, clean, and provides lots of nice features.
Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
-rwxr-xr-x | run.py | 37 |
1 files changed, 10 insertions, 27 deletions
@@ -1,26 +1,15 @@ #!/usr/bin/env python3 -from getopt import getopt, GetoptError import re import sys import os import time +import argparse import subprocess from concurrent.futures import ThreadPoolExecutor from multiprocessing import cpu_count -def usage(): - USAGE = """\ -Usage: %(progName)s <dir | shader.shader_test | shader.frag | shader.vert>... - -Options: - -h, --help Show this message -""" - print(USAGE % {'progName': sys.argv[0]}) - sys.exit(1) - - def process_directories(dirpath): filenames = set() if os.path.isdir(dirpath): @@ -110,13 +99,14 @@ def run_test(filename): def main(): - try: - option_list = [ - "help", - ] - options, args = getopt(sys.argv[1:], "h", option_list) - except GetoptError: - usage() + parser = argparse.ArgumentParser() + parser.add_argument("shader", + nargs='*', + default=['shaders'], + metavar="<shader_file | shader dir>", + help="A shader file or directory containing shader " + "files. Defaults to 'shaders/'") + args = parser.parse_args() env_add = {} env_add["shader_precompile"] = "true" @@ -125,13 +115,6 @@ def main(): os.environ.update(env_add) - for name, value in options: - if name in ('-h', '--help'): - usage() - - if len(args) < 1: - args.append("shaders") - try: os.stat("bin/glslparsertest") except: @@ -141,7 +124,7 @@ def main(): runtimebefore = time.time() filenames = set() - for i in args: + for i in args.shader: filenames.update(process_directories(i)) executor = ThreadPoolExecutor(cpu_count()) |