about summary refs log tree commit diff
path: root/web/bubblegum/examples
diff options
context:
space:
mode:
Diffstat (limited to 'web/bubblegum/examples')
-rw-r--r--web/bubblegum/examples/blog.nix43
-rw-r--r--web/bubblegum/examples/default.nix62
-rw-r--r--web/bubblegum/examples/derivation-svg.nix11
-rw-r--r--web/bubblegum/examples/hello.nix8
4 files changed, 72 insertions, 52 deletions
diff --git a/web/bubblegum/examples/blog.nix b/web/bubblegum/examples/blog.nix
index 9359d38fa2..76b91168b8 100644
--- a/web/bubblegum/examples/blog.nix
+++ b/web/bubblegum/examples/blog.nix
@@ -26,17 +26,17 @@ let
     let
       matched = builtins.match "/?([0-9]+)-([0-9]+)-([0-9]+)-.+" post;
     in
-      if matched == null
-      then [ 0 0 0 ]
-      else builtins.map builtins.fromJSON matched;
+    if matched == null
+    then [ 0 0 0 ]
+    else builtins.map builtins.fromJSON matched;
 
   parseTitle = post:
     let
       matched = builtins.match "/?[0-9]+-[0-9]+-[0-9]+-(.+).html" post;
     in
-      if matched == null
-      then "no title"
-      else builtins.head matched;
+    if matched == null
+    then "no title"
+    else builtins.head matched;
 
   dateAtLeast = a: b:
     builtins.all fun.id
@@ -68,11 +68,13 @@ let
     <main>
       <h1>blog posts</h1>
       <ul>
-  '' + lib.concatMapStrings (post: ''
+  '' + lib.concatMapStrings
+    (post: ''
       <li>
         <a href="${absolutePath (url.encode {} post)}">${parseTitle post}</a>
       </li>
-  '') posts + ''
+    '')
+    posts + ''
       </ul>
     </main>
   '';
@@ -80,10 +82,14 @@ let
   formatDate =
     let
       # Assume we never deal with years < 1000
-      formatDigit = d: string.fit {
-        char = "0"; width = 2;
-      } (toString d);
-    in lib.concatMapStringsSep "-" formatDigit;
+      formatDigit = d: string.fit
+        {
+          char = "0";
+          width = 2;
+        }
+        (toString d);
+    in
+    lib.concatMapStringsSep "-" formatDigit;
 
   post = title: post: ''
     <main>
@@ -101,8 +107,9 @@ let
   validatePathInfo = pathInfo:
     let
       chars = string.toChars pathInfo;
-    in builtins.length chars > 1
-      && !(builtins.elem "/" (builtins.tail chars));
+    in
+    builtins.length chars > 1
+    && !(builtins.elem "/" (builtins.tail chars));
 
   response =
     if pathInfo == "/"
@@ -129,6 +136,8 @@ let
       inner = "<h1>404 — not found</h1>";
     };
 in
-  respond response.status {
-    "Content-type" = "text/html";
-  } (generic response)
+respond response.status
+{
+  "Content-type" = "text/html";
+}
+  (generic response)
diff --git a/web/bubblegum/examples/default.nix b/web/bubblegum/examples/default.nix
index 3f0f51db63..20f897dbbf 100644
--- a/web/bubblegum/examples/default.nix
+++ b/web/bubblegum/examples/default.nix
@@ -4,7 +4,6 @@ let
 
   scripts = [
     ./hello.nix
-    ./derivation-svg.nix
     (substituteAll {
       src = ./blog.nix;
       # by making this a plain string this
@@ -29,33 +28,54 @@ let
     ;
 
   bins = (getBins pkgs.thttpd [ "thttpd" ])
-      // (getBins pkgs.coreutils [ "printf" "cp" "mkdir" ]);
+    // (getBins pkgs.coreutils [ "printf" "cp" "mkdir" ]);
 
   webRoot =
     let
       copyScripts = lib.concatMap
-        (path: let
-          cgi = writeCGI {
-            # assume we are on NixOS since thttpd doesn't set PATH.
-            # using third_party.nix is tricky because not everyone
-            # has a tvix daemon running.
-            binPath = "/run/current-system/sw/bin";
-          } path;
-        in [
-          "if" [ bins.cp cgi "\${out}/${cgi.name}" ]
-        ]) scripts;
-    in runExecline.local "webroot" {} ([
-      "importas" "out" "out"
-      "if" [ bins.mkdir "-p" "$out" ]
+        (path:
+          let
+            cgi = writeCGI
+              {
+                # assume we are on NixOS since thttpd doesn't set PATH.
+                # using third_party.nix is tricky because not everyone
+                # has a tvix daemon running.
+                binPath = "/run/current-system/sw/bin";
+              }
+              path;
+          in
+          [
+            "if"
+            [ bins.cp cgi "\${out}/${cgi.name}" ]
+          ])
+        scripts;
+    in
+    runExecline.local "webroot" { } ([
+      "importas"
+      "out"
+      "out"
+      "if"
+      [ bins.mkdir "-p" "$out" ]
     ] ++ copyScripts);
 
   port = 9000;
 
 in
-  writeExecline "serve-examples" {} [
-    "foreground" [
-      bins.printf "%s\n" "Running on http://localhost:${toString port}"
-    ]
-    "${bins.thttpd}" "-D" "-p" (toString port) "-l" "/dev/stderr"
-                     "-c" "*.nix" "-d" webRoot
+writeExecline "serve-examples" { } [
+  "foreground"
+  [
+    bins.printf
+    "%s\n"
+    "Running on http://localhost:${toString port}"
   ]
+  "${bins.thttpd}"
+  "-D"
+  "-p"
+  (toString port)
+  "-l"
+  "/dev/stderr"
+  "-c"
+  "*.nix"
+  "-d"
+  webRoot
+]
diff --git a/web/bubblegum/examples/derivation-svg.nix b/web/bubblegum/examples/derivation-svg.nix
deleted file mode 100644
index a5f30a2bd1..0000000000
--- a/web/bubblegum/examples/derivation-svg.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-# Warning: this is *very* slow on the first request
-{ depot, ... }:
-
-let
-  inherit (depot.web.bubblegum)
-    respond
-    ;
-in
-  respond "OK" {
-    Content-type = "image/svg+xml";
-  } (builtins.readFile "${depot.tvix.docs.svg}/component-flow.svg")
diff --git a/web/bubblegum/examples/hello.nix b/web/bubblegum/examples/hello.nix
index db04d40823..bd4891f7d6 100644
--- a/web/bubblegum/examples/hello.nix
+++ b/web/bubblegum/examples/hello.nix
@@ -87,6 +87,8 @@ let
   response = routes."${pathInfo}" or notFound;
 
 in
-  respond response.status {
-    "Content-type" = "text/html";
-  } (template response)
+respond response.status
+{
+  "Content-type" = "text/html";
+}
+  (template response)