diff options
author | kennyballou <kballou@onyx.boisestate.edu> | 2012-10-24 15:03:33 -0600 |
---|---|---|
committer | kballou <kballou@onyx.boisestate.edu> | 2012-10-24 15:03:33 -0600 |
commit | 823b5b1bf0db8d9a269280b0c5a8ad1e0efae8fc (patch) | |
tree | 3108a01a04b3442639087ab26d1c39694590e201 /xnt/xenant.py | |
parent | 1dd8b3899e6f535ec546b221b06a31db270daa42 (diff) | |
download | xnt-823b5b1bf0db8d9a269280b0c5a8ad1e0efae8fc.tar.gz xnt-823b5b1bf0db8d9a269280b0c5a8ad1e0efae8fc.tar.xz |
Add ``help`` special 'target'
Invoking Xnt with ``help`` will now display version and list targets in
the build file; erring if no build file is found
Diffstat (limited to 'xnt/xenant.py')
-rw-r--r-- | xnt/xenant.py | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/xnt/xenant.py b/xnt/xenant.py index 73ccd63..2a0de1c 100644 --- a/xnt/xenant.py +++ b/xnt/xenant.py @@ -13,14 +13,17 @@ def main(): args = sys.argv[1:] for arg in args: if arg == "version": - import xnt - print(xnt.__version__) - sys.exit() + printVersion() + elif arg == "help": + printVersion() + print("\n\n") + printTargets() elif arg: target = arg + invokeBuild(target) elif not arg: target = "default" - invokeBuild(target) + invokeBuild(target) from xnt.tasks import rm rm("build.pyc") @@ -37,5 +40,27 @@ def invokeBuild(targetName): except: logger.error(sys.exc_info()[1].message) +def printVersion(): + import xnt + print(xnt.__version__) + +def printTargets(): + if not os.path.exists("build.py"): + logger.error("There was no build file") + sys.exit(1) + try: + build = __import__("build", fromlist=[]) + for f in dir(build): + try: + fa = getattr(build, f) + if fa.decorator == "target": + print(f + ":\n") + except AttributeError: + pass + except AttributeError: + pass + except: + logger.error(sys.exc_info()[1].message) + if __name__ == "__main__": main() |