Add top level executable

This commit is contained in:
Florian Festi 2016-03-23 22:15:34 +01:00
parent c3ffeeaf84
commit 7f8a3e7087
1 changed files with 39 additions and 0 deletions

39
boxes Executable file
View File

@ -0,0 +1,39 @@
#!/usr/bin/python3
import argparse
import os
import sys
from pprint import pprint
import boxes
def printusage():
print("""Usage:
boxes [NAME] [options]
--list list possible names
--help show help for given NAME
""")
def main():
modules = {}
for module in os.listdir(os.path.dirname(__file__)):
if module in ('__init__.py', 'boxes.py', 'bserver.py') or module[-3:] != '.py':
continue
name = module[:-3]
module = __import__(name, locals(), globals())
modules[name] = module
#pprint(modules)
if len(sys.argv) == 1:
printusage()
elif sys.argv[1] in modules:
name = sys.argv[1]
sys.argv[0] = "%s %s" % (sys.argv[0], sys.argv[1])
del sys.argv[1]
modules[name].main()
elif sys.argv[1] == '--list':
print("Available generators:")
for name in sorted(modules):
print(" * ", name)
main()