summaryrefslogtreecommitdiff
path: root/subplot/ewww.py
diff options
context:
space:
mode:
Diffstat (limited to 'subplot/ewww.py')
-rw-r--r--subplot/ewww.py42
1 files changed, 12 insertions, 30 deletions
diff --git a/subplot/ewww.py b/subplot/ewww.py
index 43e5946..f1e02e3 100644
--- a/subplot/ewww.py
+++ b/subplot/ewww.py
@@ -5,8 +5,6 @@ import logging
import os
import random
import shutil
-import socket
-import time
import urllib.parse
import yaml
@@ -42,12 +40,11 @@ def fixme(*args, **kwargs):
assert 0
-# Create a file.
-def create_file(ctx, filename=None, content=None):
- logging.debug(f"Creating file {filename} with {content}")
- dirname = os.path.dirname(filename)
- os.makedirs(dirname)
- _write(filename, content)
+# Create a directory.
+def create_directory(ctx, dirname=None):
+ dirname = "./" + dirname
+ if not os.path.exists(dirname):
+ os.makedirs(dirname)
# Copy test certificate from source tree, where it's been created previously by
@@ -62,7 +59,8 @@ def copy_test_certificate(ctx, cert=None, key=None):
# Start server using named configuration file.
def start_server(ctx, filename=None):
get_file = globals()["get_file"]
- start_daemon = globals()["start_daemon"]
+ daemon_start_on_port = globals()["daemon_start_on_port"]
+
logging.debug(f"Starting ewww with config file {filename}")
config = get_file(filename).decode("UTF-8")
config = yaml.safe_load(config)
@@ -72,32 +70,16 @@ def start_server(ctx, filename=None):
config = yaml.safe_dump(config)
_write(filename, config)
- start_daemon(ctx, "ewww", [_binary("ewww"), filename])
-
- if not port_open("localhost", port, 5.0):
- stderr = open(ctx["daemon"]["ewww"]["stderr"]).read()
- logging.debug(f"Stderr from daemon: {stderr!r}")
-
-
-# Wait for a port to be open
-def port_open(host, port, timeout):
- logging.debug(f"Waiting for port localhost:{port} to be available")
- started = time.time()
- while time.time() < started + timeout:
- try:
- socket.create_connection((host, port), timeout=timeout)
- return True
- except socket.error:
- pass
- logging.error(f"Port localhost:{port} is not open")
- return False
+ daemon_start_on_port(
+ ctx, path=_binary("ewww"), args=filename, name="ewww", port=port
+ )
# Stop previously started server.
def stop_server(ctx):
- stop_daemon = globals()["stop_daemon"]
+ daemon_stop = globals()["daemon_stop"]
logging.debug("Stopping ewww")
- stop_daemon(ctx, "ewww")
+ daemon_stop(ctx, name="ewww")
# Make an HTTP request.