40 lines
927 B
Plaintext
40 lines
927 B
Plaintext
|
#!/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()
|