in plugins/mkdocs-atlas-formatting-plugin/mkdocs_atlas_formatting_plugin/atlaswebserver.py [0:0]
def start_jar(self, jar: str, host: str, port: int) -> None:
"""Start the Atlas Standalone jar and wait for the webserver port to become available."""
if self.port_is_open(host, port):
raise ChildProcessError(f'ERROR: another process is listening on port {port}')
logger.info(f'starting atlas webserver on port {port}')
self.proc = Popen(['java', '-jar', jar], stdout=DEVNULL, stderr=DEVNULL)
count = 0
while True:
if self.port_is_open(host, port):
break
else:
if count > self.webserver_timeout:
self.proc.terminate()
raise ChildProcessError(
f'ERROR: failed to access atlas webserver on ' +
f'port {port} after {self.webserver_timeout}s'
)
count += 1
time.sleep(1)
logger.info(f'webserver startup complete in {count}s, pid={self.proc.pid}')