summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-04-25 18:04:50 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-04-25 21:52:39 +0200
commit90ed0ef042faaa0d301f6c339bfea926fbedc754 (patch)
tree2f893530ef9ca5664748e361c52b0bdf68c2fe2a
parentfeat(treewide): Migrate to zola (diff)
downloadb-peetz.de-90ed0ef042faaa0d301f6c339bfea926fbedc754.zip
build(server.py): Add a small script to test the final website
Diffstat (limited to '')
-rw-r--r--.gitignore1
-rw-r--r--flake.nix1
-rwxr-xr-xserver.py32
3 files changed, 34 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 9a899cc..aab76ce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 .direnv
 /result
+__pycache__
diff --git a/flake.nix b/flake.nix
index 5e4e91b..6bc34fc 100644
--- a/flake.nix
+++ b/flake.nix
@@ -135,6 +135,7 @@
           default = pkgs.mkShell {
             packages = [
               pkgs.zola
+              pkgs.python3
             ];
           };
         };
diff --git a/server.py b/server.py
new file mode 100755
index 0000000..9e81820
--- /dev/null
+++ b/server.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+
+import http.server
+import os
+
+
+class NoCacheHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
+    def end_headers(self):
+        self.send_header('Cache-Control', 'no-cache, no-store, must-revalidate')  # HTTP 1.1
+        self.send_header('Pragma', 'no-cache')  # HTTP 1.0
+        self.send_header('Expires', '0')  # Proxies
+        super().end_headers()
+
+
+def run(server_class=http.server.HTTPServer, port=8080, directory="./result"):
+    # Set the directory for the handler
+    handler_class = NoCacheHTTPRequestHandler
+    handler_class.directory = os.path.abspath(directory)
+
+    # Change the current working directory to the specified directory
+    os.chdir(os.path.abspath(directory))
+
+    # Create the server on 127.0.0.1
+    with server_class(("127.0.0.1", port), handler_class) as httpd:
+        print(
+            f"Serving on http://127.0.0.1:{port} from directory '{handler_class.directory}'"
+        )
+        httpd.serve_forever()
+
+
+if __name__ == "__main__":
+    run(port=8080, directory="./result")