server.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. # @Author: Bachir Soussi Chiadmi <bach>
  4. # @Date: 23-05-2017
  5. # @Email: bachir@figureslibres.io
  6. # @Filename: server.py
  7. # @Last modified by: bach
  8. # @Last modified time: 03-06-2017
  9. # @License: GPL-V3
  10. import sys, os
  11. from socket import socket
  12. import socketserver
  13. import http.server
  14. import threading
  15. class Server():
  16. def __init__(self, parent):
  17. self.parent = parent
  18. # find free port
  19. sock = socket()
  20. sock.bind(('', 0))
  21. self._port = sock.getsockname()[1]
  22. sock.close()
  23. # self.initial_cwd = os.getcwd()
  24. self.thread = threading.Thread(target=self.webserver)
  25. self.thread.daemon = True
  26. self.thread.start()
  27. # os.chdir(self.initial_cwd)
  28. def webserver(self):
  29. os.chdir(self.parent.cwd)
  30. self.httpd = http.server.HTTPServer(('', self.port), http.server.SimpleHTTPRequestHandler)
  31. self.httpd.serve_forever()
  32. print("serving at port", self._port)
  33. @property
  34. def port(self):
  35. return self._port
  36. def reload(self):
  37. # self.thread.shutdown()
  38. os.chdir(self.parent.cwd)
  39. # self.thread.start()
  40. # os.chdir(self.initial_cwd)