diff options
-rwxr-xr-x | clesana | 58 |
1 files changed, 36 insertions, 22 deletions
@@ -1,35 +1,49 @@ #!/usr/bin/env python3 +import argparse +import os.path import sys -import lesana import cherrypy +import guacamole +import lesana import cherry_lesana as cl from pkg_resources import resource_filename -def main(): - # TODO: read config from a file or something - config = { - '/': { - 'tools.staticdir.root': resource_filename( - 'cherry_lesana', - 'data', - ) - }, - '/static': { - 'tools.staticdir.on': True, - 'tools.staticdir.dir': 'static', +class CherryLesana(guacamole.Command): + def register_arguments(self, parser): + parser.add_argument( + '--collection', '-c', + help='The collection to work on (default .)', + default='.', + ) + parser.add_argument( + '--browser', '-b', + help='', + ) + + def invoked(self, ctx): + # TODO: read config from a file or something + config = { + '/': { + 'tools.staticdir.root': resource_filename( + 'cherry_lesana', + 'data', + ) + }, + '/static': { + 'tools.staticdir.on': True, + 'tools.staticdir.dir': 'static', + } } - } - # TODO: properly read command line args - try: - collection = lesana.Collection(sys.argv[1]) - except IndexError: - collection = None - app = cl.App(collection) - cherrypy.quickstart(app, '/', config) + if os.path.exists(os.path.join(ctx.args.collection, '.lesana')): + collection = lesana.Collection(ctx.args.collection) + else: + collection = None + app = cl.App(collection) + cherrypy.quickstart(app, '/', config) if __name__ == '__main__': - main() + CherryLesana().main() |