cli.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import argparse
  2. import tornado.log
  3. from livereload.server import Server
  4. parser = argparse.ArgumentParser(description='Start a `livereload` server')
  5. parser.add_argument(
  6. '--host',
  7. help='Hostname to run `livereload` server on',
  8. type=str,
  9. default='127.0.0.1'
  10. )
  11. parser.add_argument(
  12. '-p', '--port',
  13. help='Port to run `livereload` server on',
  14. type=int,
  15. default=35729
  16. )
  17. parser.add_argument(
  18. 'directory',
  19. help='Directory to serve files from',
  20. type=str,
  21. default='.',
  22. nargs='?'
  23. )
  24. parser.add_argument(
  25. '-t', '--target',
  26. help='File or directory to watch for changes',
  27. type=str,
  28. )
  29. parser.add_argument(
  30. '-w', '--wait',
  31. help='Time delay in seconds before reloading',
  32. type=float,
  33. default=0.0
  34. )
  35. parser.add_argument(
  36. '-o', '--open-url-delay',
  37. help='If set, triggers browser opening <D> seconds after starting',
  38. type=float
  39. )
  40. parser.add_argument(
  41. '-d', '--debug',
  42. help='Enable Tornado pretty logging',
  43. action='store_true'
  44. )
  45. def main(argv=None):
  46. args = parser.parse_args()
  47. if args.debug:
  48. tornado.log.enable_pretty_logging()
  49. # Create a new application
  50. server = Server()
  51. server.watcher.watch(args.target or args.directory, delay=args.wait)
  52. server.serve(host=args.host, port=args.port, root=args.directory,
  53. open_url_delay=args.open_url_delay)