def serve(self, browser=True, port=8000): """ Start a http server and rebuild on changes. """ self._parallel = PARALLEL_DISABLED self._port = port self.clean() self.build() logger.info('Running webserver at http://127.0.0.1:%s for %s' % (port, self.build_path)) ipc.signal("server.didstart") logger.info('Type control-c to exit') os.chdir(self.build_path) self.listener = Listener(self.path, self._rebuild, ignore=self._rebuild_should_ignore) self.listener.run() self.server = WebServer(self.build_path, port=port) try: self.server.start() # if browser is True: # webbrowser.open('http://127.0.0.1:%s' % port) except (KeyboardInterrupt, SystemExit): self.server.stop() logger.info("Bye")