def restart(self, forced=False): from calibre.utils.rapydscript import CompileFailure, compile_srv self.clean_kill() if forced: self.retry_count += 1 else: self.retry_count = 0 try: compile_srv() except OSError as e: # Happens if the editor deletes and replaces a file being edited if e.errno != errno.ENOENT or not getattr(e, 'filename', False): raise st = monotonic() while not os.path.exists(e.filename) and monotonic() - st < 3: time.sleep(0.01) compile_srv() except CompileFailure as e: self.log.error(error_message(e)) time.sleep(0.1 * self.retry_count) if self.retry_count < MAX_RETRIES and self.wakeup is not None: self.wakeup() # Force a restart return self.retry_count = 0 self.p = subprocess.Popen(self.cmd, creationflags=getattr( subprocess, 'CREATE_NEW_PROCESS_GROUP', 0)) self.wait_for_listen() self.server.notify_reload()
def __init__(self, libraries, opts): log = access_log = None log_size = opts.max_log_size * 1024 * 1024 if opts.log: log = RotatingLog(opts.log, max_size=log_size) if opts.access_log: access_log = RotatingLog(opts.access_log, max_size=log_size) self.handler = Handler(libraries, opts) if opts.custom_list_template: with lopen(os.path.expanduser(opts.custom_list_template), 'rb') as f: self.handler.router.ctx.custom_list_template = json.load(f) if opts.search_the_net_urls: with lopen(os.path.expanduser(opts.search_the_net_urls), 'rb') as f: self.handler.router.ctx.search_the_net_urls = json.load(f) plugins = [] if opts.use_bonjour: plugins.append(BonJour(wait_for_stop=max(0, opts.shutdown_timeout - 0.2))) self.loop = ServerLoop( create_http_handler(self.handler.dispatch), opts=opts, log=log, access_log=access_log, plugins=plugins) self.handler.set_log(self.loop.log) self.handler.set_jobs_manager(self.loop.jobs_manager) self.serve_forever = self.loop.serve_forever self.stop = self.loop.stop if is_running_from_develop: from calibre.utils.rapydscript import compile_srv compile_srv()
def restart(self, forced=False): from calibre.utils.rapydscript import compile_srv, CompileFailure self.clean_kill() if forced: self.retry_count += 1 else: self.retry_count = 0 try: compile_srv() except EnvironmentError as e: # Happens if the editor deletes and replaces a file being edited if e.errno != errno.ENOENT or not getattr(e, 'filename', False): raise st = monotonic() while not os.path.exists(e.filename) and monotonic() - st < 3: time.sleep(0.01) compile_srv() except CompileFailure as e: self.log.error(e.message) time.sleep(0.1 * self.retry_count) if self.retry_count < MAX_RETRIES and self.wakeup is not None: self.wakeup() # Force a restart return self.retry_count = 0 self.p = subprocess.Popen(self.cmd, creationflags=getattr(subprocess, 'CREATE_NEW_PROCESS_GROUP', 0)) self.wait_for_listen() self.server.notify_reload()
def serve_forever(self): self.exception = None from calibre.srv.content import reset_caches try: if is_running_from_develop: from calibre.utils.rapydscript import compile_srv compile_srv() except BaseException as e: self.exception = e if self.start_failure_callback is not None: try: self.start_failure_callback(as_unicode(e)) except Exception: pass return if self.state_callback is not None: try: self.state_callback(True) except Exception: pass reset_caches() # we reset the cache as the server tdir has changed try: self.loop.serve_forever() except BaseException as e: self.exception = e if self.state_callback is not None: try: self.state_callback(False) except Exception: pass
def __init__(self, libraries, opts): log = access_log = None log_size = opts.max_log_size * 1024 * 1024 if opts.log: log = RotatingLog(opts.log, max_size=log_size) if opts.access_log: access_log = RotatingLog(opts.access_log, max_size=log_size) self.handler = Handler(libraries, opts) if opts.custom_list_template: with lopen(opts.custom_list_template, 'rb') as f: self.handler.router.ctx.custom_list_template = json.load(f) plugins = [] if opts.use_bonjour: plugins.append(BonJour()) self.loop = ServerLoop( create_http_handler(self.handler.dispatch), opts=opts, log=log, access_log=access_log, plugins=plugins) self.handler.set_log(self.loop.log) self.handler.set_jobs_manager(self.loop.jobs_manager) self.serve_forever = self.loop.serve_forever self.stop = self.loop.stop if is_running_from_develop: from calibre.utils.rapydscript import compile_srv compile_srv()
def run(self, opts): from calibre.utils.rapydscript import compile_srv, compile_editor, compile_viewer if opts.only_module: locals()['compile_' + opts.only_module]() else: compile_editor() compile_viewer() compile_srv()
def restart(self): from calibre.utils.rapydscript import compile_srv self.clean_kill() compile_srv() self.p = subprocess.Popen(self.cmd, creationflags=getattr( subprocess, 'CREATE_NEW_PROCESS_GROUP', 0))
def restart(self): from calibre.utils.rapydscript import compile_srv self.clean_kill() try: compile_srv() except EnvironmentError as e: # Happens if the editor deletes and replaces a file being edited if e.errno != errno.ENOENT or not getattr(e, 'filename', False): raise st = time.time() while not os.path.exists(e.filename) and time.time() - st < 3: time.sleep(0.01) compile_srv() self.p = subprocess.Popen(self.cmd, creationflags=getattr(subprocess, 'CREATE_NEW_PROCESS_GROUP', 0))
def __init__(self, libraries, opts): log = None if opts.log: log = RotatingLog(opts.log, max_size=opts.max_log_size) self.handler = Handler(libraries, opts) plugins = [] if opts.use_bonjour: plugins.append(BonJour()) self.loop = ServerLoop(create_http_handler(self.handler.dispatch), opts=opts, log=log, plugins=plugins) self.handler.set_log(self.loop.log) self.serve_forever = self.loop.serve_forever self.stop = self.loop.stop _df = os.environ.get('CALIBRE_DEVELOP_FROM', None) if _df and os.path.exists(_df): from calibre.utils.rapydscript import compile_srv compile_srv()
def __init__(self, libraries, opts): log = access_log = None log_size = opts.max_log_size * 1024 * 1024 if opts.log: log = RotatingLog(opts.log, max_size=log_size) if opts.access_log: access_log = RotatingLog(opts.access_log, max_size=log_size) self.handler = Handler(libraries, opts) plugins = [] if opts.use_bonjour: plugins.append(BonJour()) self.loop = ServerLoop(create_http_handler(self.handler.dispatch), opts=opts, log=log, access_log=access_log, plugins=plugins) self.handler.set_log(self.loop.log) self.handler.set_jobs_manager(self.loop.jobs_manager) self.serve_forever = self.loop.serve_forever self.stop = self.loop.stop if is_running_from_develop: from calibre.utils.rapydscript import compile_srv compile_srv()
def __init__(self, library_broker, notify_changes): opts = server_config() lp, lap = log_paths() try: os.makedirs(cache_dir()) except EnvironmentError as err: if err.errno != errno.EEXIST: raise log_size = opts.max_log_size * 1024 * 1024 log = RotatingLog(lp, max_size=log_size) access_log = RotatingLog(lap, max_size=log_size) self.handler = Handler(library_broker, opts, notify_changes=notify_changes) plugins = self.plugins = [] if opts.use_bonjour: plugins.append(BonJour()) self.opts = opts self.log, self.access_log = log, access_log self.handler.set_log(self.log) _df = os.environ.get('CALIBRE_DEVELOP_FROM', None) if _df and os.path.exists(_df): from calibre.utils.rapydscript import compile_srv compile_srv()
def run(self, opts): from calibre.utils.rapydscript import compile_srv compile_srv()
def restart(self): from calibre.utils.rapydscript import compile_srv self.clean_kill() compile_srv() self.p = subprocess.Popen(self.cmd, creationflags=getattr(subprocess, 'CREATE_NEW_PROCESS_GROUP', 0))