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()