def main(): if argparse is None: print('WARNING: install argparse (or Python 2.7+) for easier usage') port = 8984 path = os.path.expanduser('~/Downloads') if '--help' in sys.argv: print('Usage: view750 [path [port]]\n' ' - path: folder containing 750 Words export files [default %s]\n' ' - port: port to start HTTP server on [default %s]' % (path, port)) sys.exit(0) else: if len(sys.argv) > 1: path = sys.argv[1] if len(sys.argv) > 2: port = int(sys.argv[2]) else: parser = get_cmdline_parser() args = parser.parse_args(sys.argv[1:]) port = int(args.port) path = args.path class Call(object): def __init__(self, func, *args, **kwargs): self.func = func self.args = args self.kwargs = kwargs def __call__(self, *args, **kwargs): a = args + self.args k = dict(**self.kwargs) k.update(kwargs) return self.func(*a, **k) try: server = HTTPServer(('', port), TextServer) server.get_html = Call(get_html, path=path) server.get_metadata_list = Call(get_metadata_list, path=path) server.get_metadata = Call(get_metadata, path=path) webbrowser.open('http://localhost:%d/' % port) server.serve_forever() except KeyboardInterrupt: print('Ctrl+C received, shutting down server') server.socket.close()