about summary refs log tree commit diff
path: root/web/bubblegum
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-01-30T16·06+0300
committertazjin <tazjin@tvl.su>2022-01-31T16·11+0000
commitaa122cbae78ce97d60c0c98ba14df753d97e40b1 (patch)
tree12b98d85c4b18fe870feb26de70db9ba61837bd7 /web/bubblegum
parent2d10d60fac0fd00a71b65cfdcb9fba0477b2086c (diff)
style: format entire depot with nixpkgs-fmt r/3723
This CL can be used to compare the style of nixpkgs-fmt against other
formatters (nixpkgs, alejandra).

Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: cynthia <cynthia@tvl.fyi>
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: eta <tvl@eta.st>
Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'web/bubblegum')
-rw-r--r--web/bubblegum/default.nix66
-rw-r--r--web/bubblegum/examples/blog.nix43
-rw-r--r--web/bubblegum/examples/default.nix61
-rw-r--r--web/bubblegum/examples/derivation-svg.nix8
-rw-r--r--web/bubblegum/examples/hello.nix8
5 files changed, 118 insertions, 68 deletions
diff --git a/web/bubblegum/default.nix b/web/bubblegum/default.nix
index 1fbe544bce..528d73032b 100644
--- a/web/bubblegum/default.nix
+++ b/web/bubblegum/default.nix
@@ -134,20 +134,23 @@ let
           code = statusCodes."${statusArg}" or null;
           line = statusArg;
         } else {
-          code = null; line = null;
+          code = null;
+          line = null;
         };
       renderedHeaders = lib.concatStrings
         (lib.mapAttrsToList (n: v: "${n}: ${toString v}\r\n") headers);
-      internalError = msg: respond 500 {
-        Content-type = "text/plain";
-      } "bubblegum error: ${msg}";
+      internalError = msg: respond 500
+        {
+          Content-type = "text/plain";
+        } "bubblegum error: ${msg}";
       body = builtins.tryEval bodyArg;
     in
-      if status.code == null || status.line == null
-      then internalError "Invalid status ${lib.generators.toPretty {} statusArg}."
-      else if !body.success
-      then internalError "Unknown evaluation error in user code"
-      else lib.concatStrings [
+    if status.code == null || status.line == null
+    then internalError "Invalid status ${lib.generators.toPretty {} statusArg}."
+    else if !body.success
+    then internalError "Unknown evaluation error in user code"
+    else
+      lib.concatStrings [
         "Status: ${toString status.code} ${status.line}\r\n"
         renderedHeaders
         "\r\n"
@@ -169,9 +172,9 @@ let
     let
       p = builtins.getEnv "PATH_INFO";
     in
-      if builtins.stringLength p == 0
-      then "/"
-      else p;
+    if builtins.stringLength p == 0
+    then "/"
+    else p;
 
   /* Helper function which converts a path from the
      root of the CGI script (i. e. something which
@@ -187,12 +190,13 @@ let
     else "${scriptName}/${path}";
 
   bins = getBins pkgs.coreutils [ "env" "tee" "cat" "printf" "chmod" ]
-      // getBins nint [ "nint" ];
+    // getBins nint [ "nint" ];
 
   /* Type: args -> either path derivation string -> derivation
   */
   writeCGI =
-    { # if given sets the `PATH` to search for `nix-instantiate`
+    {
+      # if given sets the `PATH` to search for `nix-instantiate`
       # Useful when using for example thttpd which unsets `PATH`
       # in the CGI environment.
       binPath ? ""
@@ -202,7 +206,8 @@ let
     , name ? null
     , ...
     }@args:
-    input: let
+    input:
+    let
       drvName =
         if builtins.isString input || args ? name
         then args.name
@@ -227,20 +232,31 @@ let
         # always pass depot so scripts can use this library
         "--arg depot '(import ${minimalDepot} {})'"
       ]);
-    in runExecline.local drvName {} [
-      "importas" "out" "out"
-      "pipeline" [
-        "foreground" [
-          "if" [ bins.printf "%s\n" shebang ]
+    in
+    runExecline.local drvName { } [
+      "importas"
+      "out"
+      "out"
+      "pipeline"
+      [
+        "foreground"
+        [
+          "if"
+          [ bins.printf "%s\n" shebang ]
         ]
-        "if" [ bins.cat script ]
+        "if"
+        [ bins.cat script ]
       ]
-      "if" [ bins.tee "$out" ]
-      "if" [ bins.chmod "+x" "$out" ]
-      "exit" "0"
+      "if"
+      [ bins.tee "$out" ]
+      "if"
+      [ bins.chmod "+x" "$out" ]
+      "exit"
+      "0"
     ];
 
-in {
+in
+{
   inherit
     respond
     pathInfo
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..89482f93ea 100644
--- a/web/bubblegum/examples/default.nix
+++ b/web/bubblegum/examples/default.nix
@@ -29,33 +29,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
index a5f30a2bd1..9a625afb55 100644
--- a/web/bubblegum/examples/derivation-svg.nix
+++ b/web/bubblegum/examples/derivation-svg.nix
@@ -6,6 +6,8 @@ let
     respond
     ;
 in
-  respond "OK" {
-    Content-type = "image/svg+xml";
-  } (builtins.readFile "${depot.tvix.docs.svg}/component-flow.svg")
+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)