diff --git a/var/vars/index.html b/index.html similarity index 100% rename from var/vars/index.html rename to index.html diff --git a/traceflow/printer.py b/traceflow/printer.py index bc915df..18c0a90 100644 --- a/traceflow/printer.py +++ b/traceflow/printer.py @@ -57,20 +57,40 @@ def start_viz(traces, bind_ip) -> None: import http.server port = 8081 - DIRECTORY = "var/" - - class Handler(http.server.SimpleHTTPRequestHandler): + NODES = printer.__build_nodes(traces) + + class nodesHandler(http.server.BaseHTTPRequestHandler): + nodes = None def __init__(self, *args, **kwargs): - super().__init__(*args, directory=DIRECTORY, **kwargs) + super().__init__(*args, nodes=NODES, **kwargs) + def store_nodes(self, nodes): + self.nodes = nodes + def do_GET(self): + if self.path in ['/']: + self.send_response(200) + self.send_header('Content-type','text/html') + self.end_headers() + + self.wfile.write("data = '{0}'".format(self.nodes)) + elif self.path in ['/nodes.json']: + self.send_response(200) + self.send_header('Content-type','application/json') + self.end_headers() + + f = open("index.html") + self.wfile.write(f.read()) + f.close() + else: + self.send_response(404) - nodes = printer.__build_nodes(traces) - f = open(DIRECTORY + "nodes.json", "w") - f.write("data = '{0}'".format(nodes)) - f.close() + # Send the html message + self.wfile.write("Hello World !") + return print( f"Starting temp. web server on http://{bind_ip}:{port}. Ctrl+C to finish/exit." ) - httpd = http.server.HTTPServer((bind_ip, port), Handler) + httpd = http.server.HTTPServer((bind_ip, port), nodesHandler) + httpd.handle_request httpd.serve_forever() return None