You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

40 lines
909 B

  1. import argparse
  2. import BaseHTTPServer
  3. import os
  4. import SimpleHTTPServer
  5. from daemonize import Daemonize
  6. def setup():
  7. parser = argparse.ArgumentParser()
  8. parser.add_argument("directory")
  9. parser.add_argument("-p", "--port", dest="port", type=int, default=8080)
  10. parser.add_argument('-P', "--pid-file", dest="pid", default="web.pid")
  11. args = parser.parse_args()
  12. # Get absolute path to directory to serve, as daemonize changes to '/'
  13. os.chdir(args.directory)
  14. dr = os.getcwd()
  15. httpd = BaseHTTPServer.HTTPServer(
  16. ('', args.port),
  17. SimpleHTTPServer.SimpleHTTPRequestHandler
  18. )
  19. def run():
  20. os.chdir(dr)
  21. httpd.serve_forever()
  22. daemon = Daemonize(
  23. app="synapse-webclient",
  24. pid=args.pid,
  25. action=run,
  26. auto_close_fds=False,
  27. )
  28. daemon.start()
  29. if __name__ == '__main__':
  30. setup()