diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-11-26 23:02:10 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-11-26 23:02:10 +0200 |
commit | 2ec7701460c1f819f0ef9cc8ed0f7b587fbb3bff (patch) | |
tree | e1a68eb984a337ebe07368a02f944e384baa6f5c | |
parent | f111a0b82601ae4ed01e49069030eabeb2c5c008 (diff) | |
download | meson-2ec7701460c1f819f0ef9cc8ed0f7b587fbb3bff.zip meson-2ec7701460c1f819f0ef9cc8ed0f7b587fbb3bff.tar.gz meson-2ec7701460c1f819f0ef9cc8ed0f7b587fbb3bff.tar.bz2 |
Command line argument parser.
-rwxr-xr-x | mesonast.py | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/mesonast.py b/mesonast.py index e269b0c..b7aaadb 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'): |