boxespy/scripts/boxes

60 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python3
from __future__ import print_function
import argparse
import os
import sys
from pprint import pprint
try:
import boxes
except ImportError:
sys.path.append(os.path.dirname(os.path.realpath(__file__)) + "/..")
import boxes
import boxes.generators
def printusage():
print("""Usage:
boxes [NAME] [options]
--list list possible names
--help show help for given NAME
""")
def main():
generators = {name.split('.')[-1].lower() : box for name, box in
boxes.generators.getAllBoxGenerators().items()}
groups = boxes.generators.ui_groups
groups_by_name = boxes.generators.ui_groups_by_name
for name, box in generators.items():
groups_by_name.get(box.ui_group,
groups_by_name["Misc"]).add(box)
if len(sys.argv) > 1 and sys.argv[1].startswith("--id="):
del sys.argv[1]
if len(sys.argv) == 1:
printusage()
elif sys.argv[1] == '--list':
print("Available generators:")
for group in groups:
print('\n' + group.title)
if group.description:
print('\n%s\n' % group.description)
else:
print()
for box in group.generators:
print(" * ", box.__name__, ' - ', box.__doc__ or '')
else:
name = sys.argv[1].lower()
if name.startswith("--generator="):
name = name[12:]
if (name in generators):
box = generators[name]()
box.parseArgs(sys.argv[2:])
box.render()
else:
sys.stderr.write(str(sys.argv))
sys.stderr.write("Unknown generator name. Use boxes --list to get a list of available commands.")
main()