From 2ec7701460c1f819f0ef9cc8ed0f7b587fbb3bff Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Sat, 26 Nov 2016 23:02:10 +0200 Subject: [PATCH] Command line argument parser. --- mesonast.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/mesonast.py b/mesonast.py index e269b0c16..b7aaadbc4 100755 --- a/mesonast.py +++ b/mesonast.py @@ -27,16 +27,30 @@ import mesonbuild.astinterpreter from mesonbuild.mesonlib import MesonException from mesonbuild import mlog import sys, traceback +import argparse + +parser = argparse.ArgumentParser() + +parser.add_argument('--sourcedir', default='.', + help='Path to source directory.') +parser.add_argument('--target', default=None, + help='Name of target to edit.') +parser.add_argument('--filename', default=None, + help='Name of source file to add or remove to target.') +parser.add_argument('commands', nargs='+') if __name__ == '__main__': - if len(sys.argv) == 1: - source_root = 'test cases/common/1 trivial' - else: - source_root = sys.argv[1] - ast = mesonbuild.astinterpreter.AstInterpreter(source_root, '') + options = parser.parse_args() + if options.target is None or options.filename is None: + sys.exit("Must specify both target and filename.") + ast = mesonbuild.astinterpreter.AstInterpreter(options.sourcedir, '') try: -# ast.add_source('trivialprog', 'newfile.c') - ast.remove_source('trivialprog', 'newfile.c') + if options.commands[0] == 'add': + ast.add_source(options.target, options.filename) + elif options.commands[0] == 'remove': + ast.remove_source(options.target, options.filename) + else: + sys.exit('Unknown command: ' + options.commands[0]) except Exception as e: if isinstance(e, MesonException): if hasattr(e, 'file') and hasattr(e, 'lineno') and hasattr(e, 'colno'):