From aa122cbae78ce97d60c0c98ba14df753d97e40b1 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sun, 30 Jan 2022 19:06:58 +0300 Subject: style: format entire depot with nixpkgs-fmt 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 Reviewed-by: lukegb Reviewed-by: wpcarro Reviewed-by: Profpatsch Reviewed-by: kanepyork Reviewed-by: tazjin Reviewed-by: cynthia Reviewed-by: edef Reviewed-by: eta Reviewed-by: grfn --- web/bubblegum/default.nix | 66 +++++++++++++++++++------------ web/bubblegum/examples/blog.nix | 43 ++++++++++++-------- web/bubblegum/examples/default.nix | 61 ++++++++++++++++++---------- web/bubblegum/examples/derivation-svg.nix | 8 ++-- web/bubblegum/examples/hello.nix | 8 ++-- 5 files changed, 118 insertions(+), 68 deletions(-) (limited to 'web/bubblegum') 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

blog posts

    - '' + lib.concatMapStrings (post: '' + '' + lib.concatMapStrings + (post: ''
  • ${parseTitle post}
  • - '') posts + '' + '') + posts + ''
''; @@ -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: ''
@@ -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 = "

404 — not found

"; }; 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) -- cgit 1.4.1