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/atom-feed/default.nix | 5 ++- web/blog/default.nix | 5 ++- web/blog/fragments.nix | 45 ++++++++++----------- 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 ++-- web/cgit-taz/default.nix | 5 ++- web/panettone/shell.nix | 2 +- web/static/default.nix | 4 +- web/todolist/default.nix | 29 +++++++------- web/tvl/blog/default.nix | 2 +- web/tvl/default.nix | 10 +++-- web/tvl/footer/default.nix | 2 +- web/tvl/logo/default.nix | 42 +++++++++++--------- web/tvl/template/default.nix | 16 ++++---- 17 files changed, 209 insertions(+), 144 deletions(-) (limited to 'web') diff --git a/web/atom-feed/default.nix b/web/atom-feed/default.nix index 1fbcde9bd4..fca69e20fa 100644 --- a/web/atom-feed/default.nix +++ b/web/atom-feed/default.nix @@ -90,7 +90,7 @@ let # Feed generation functions: - renderEpoch = epoch: removeSuffix "\n" (readFile (runCommandNoCC "date-${toString epoch}" {} '' + renderEpoch = epoch: removeSuffix "\n" (readFile (runCommandNoCC "date-${toString epoch}" { } '' date --date='@${toString epoch}' --utc --iso-8601='seconds' > $out '')); @@ -147,6 +147,7 @@ let ${concatStrings (map renderEntry (sortEntries f.entries))} ''); -in { +in +{ inherit entry feed renderFeed renderEpoch; } diff --git a/web/blog/default.nix b/web/blog/default.nix index 2cabc09b55..f55c33a63a 100644 --- a/web/blog/default.nix +++ b/web/blog/default.nix @@ -40,7 +40,7 @@ let fragments = import ./fragments.nix args; # Functions for generating feeds for these blogs using //web/atom-feed. - toFeedEntry = { baseUrl, ...}: defun [ post atom-feed.entry ] (post: rec { + toFeedEntry = { baseUrl, ... }: defun [ post atom-feed.entry ] (post: rec { id = "${baseUrl}/${post.key}"; title = post.title; content = readFile (renderMarkdown post.content); @@ -52,7 +52,8 @@ let href = id; }; }); -in { +in +{ inherit post toFeedEntry; inherit (fragments) renderPost; diff --git a/web/blog/fragments.nix b/web/blog/fragments.nix index 63fc1ab4c5..19d62fa474 100644 --- a/web/blog/fragments.nix +++ b/web/blog/fragments.nix @@ -20,29 +20,29 @@ let escape = replaceStrings [ "<" ">" "&" "'" ] [ "<" ">" "&" "'" ]; header = name: title: '' - - - - - - - - - ${escape name}: ${escape title} - - -
-

${escape name}

-
-
+ + + + + + + + + ${escape name}: ${escape title} + + +
+

${escape name}

+
+
''; fullFooter = content: '' -
-
- ${content} -
- +
+
+ ${content} +
+ ''; draftWarning = writeText "draft.html" '' @@ -61,7 +61,7 @@ let
''; - renderPost = { name, footer, ... }: post: runCommandNoCC "${post.key}.html" {} '' + renderPost = { name, footer, ... }: post: runCommandNoCC "${post.key}.html" { } '' cat ${writeText "header.html" (header name post.title)} > $out # Write the post title & date @@ -90,6 +90,7 @@ let cat ${writeText "footer.html" (fullFooter footer)} >> $out ''; -in { +in +{ inherit isDraft isUnlisted renderPost; } 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) diff --git a/web/cgit-taz/default.nix b/web/cgit-taz/default.nix index a89b96fd92..83ec822e5d 100644 --- a/web/cgit-taz/default.nix +++ b/web/cgit-taz/default.nix @@ -63,12 +63,13 @@ let envp[envn++] = build_env( "PATH=%s", CGI_PATH ); #ifdef CGI_LD_LIBRARY_PATH ''; - thttpdCgit = thttpd.overrideAttrs(old: { + thttpdCgit = thttpd.overrideAttrs (old: { patches = [ ./thttpd_cgi_idx.patch thttpdConfigPatch ]; }); -in writeShellScriptBin "cgit-launch" '' +in +writeShellScriptBin "cgit-launch" '' exec ${thttpdCgit}/bin/thttpd -D -C ${thttpdConfig} '' diff --git a/web/panettone/shell.nix b/web/panettone/shell.nix index aeafc7afcd..54bc49013b 100644 --- a/web/panettone/shell.nix +++ b/web/panettone/shell.nix @@ -1,4 +1,4 @@ -{ depot ? import ../.. {} }: +{ depot ? import ../.. { } }: with depot.third_party; diff --git a/web/static/default.nix b/web/static/default.nix index 2120e649f0..9eaeb0ec14 100644 --- a/web/static/default.nix +++ b/web/static/default.nix @@ -5,7 +5,9 @@ let storeDirLength = with builtins; (stringLength storeDir) + 1; logo = depot.web.tvl.logo; -in lib.fix(self: pkgs.runCommand "tvl-static" { +in +lib.fix (self: pkgs.runCommand "tvl-static" +{ passthru = { # Preserving the string context here makes little sense: While we are # referencing this derivation, we are not doing so via the nix store, diff --git a/web/todolist/default.nix b/web/todolist/default.nix index a2fcb501bd..c37a655559 100644 --- a/web/todolist/default.nix +++ b/web/todolist/default.nix @@ -39,7 +39,7 @@ let user = string; }; - allTodos = fromJSON (readFile (runCommandNoCC "depot-todos.json" {} '' + allTodos = fromJSON (readFile (runCommandNoCC "depot-todos.json" { } '' ${ripgrep}/bin/rg --json 'TODO\(\w+\):.*$' ${depot.path} | \ ${jq}/bin/jq -s -f ${./extract-todos.jq} > $out '')); @@ -58,22 +58,23 @@ let ''); userParagraph = todos: - let user = (head todos).user; - in '' -

-

- ${user} -

- ${concatStringsSep "\n" (map todoElement todos)} -

-
- ''; + let user = (head todos).user; + in '' +

+

+ ${user} +

+ ${concatStringsSep "\n" (map todoElement todos)} +

+
+ ''; staticUrl = "https://static.tvl.fyi/${depot.web.static.drvHash}"; -in writeTextFile { +in +writeTextFile { name = "tvl-todos"; destination = "/index.html"; text = '' diff --git a/web/tvl/blog/default.nix b/web/tvl/blog/default.nix index fe8d1c42d6..963bb635e3 100644 --- a/web/tvl/blog/default.nix +++ b/web/tvl/blog/default.nix @@ -3,7 +3,7 @@ { config = { name = "TVL's blog"; - footer = depot.web.tvl.footer {}; + footer = depot.web.tvl.footer { }; baseUrl = "https://tvl.fyi/blog"; }; diff --git a/web/tvl/default.nix b/web/tvl/default.nix index 1025b1a7b2..262be54c0e 100644 --- a/web/tvl/default.nix +++ b/web/tvl/default.nix @@ -16,9 +16,10 @@ let (map (p: "cp ${blog.renderPost tvl.blog.config p} $out/blog/${p.key}.html") posts) ); - tvlGraph = runCommandNoCC "tvl.svg" { - nativeBuildInputs = with pkgs; [ fontconfig freetype cairo jetbrains-mono ]; - } '' + tvlGraph = runCommandNoCC "tvl.svg" + { + nativeBuildInputs = with pkgs; [ fontconfig freetype cairo jetbrains-mono ]; + } '' ${graphviz}/bin/neato -Tsvg ${./tvl.dot} > $out ''; @@ -121,7 +122,8 @@ let ''; }; -in runCommandNoCC "website" {} '' +in +runCommandNoCC "website" { } '' mkdir -p $out/blog cp ${homepage} $out/index.html ${postRenderingCommands tvl.blog.posts} diff --git a/web/tvl/footer/default.nix b/web/tvl/footer/default.nix index 7412d019ee..dc2c963f90 100644 --- a/web/tvl/footer/default.nix +++ b/web/tvl/footer/default.nix @@ -15,7 +15,7 @@ args: '' todos | search - '' + lib.optionalString (args ? extraFooter) args.extraFooter + '' +'' + lib.optionalString (args ? extraFooter) args.extraFooter + ''

ಠ_ಠ

'' diff --git a/web/tvl/logo/default.nix b/web/tvl/logo/default.nix index 940f67199b..d9e023946a 100644 --- a/web/tvl/logo/default.nix +++ b/web/tvl/logo/default.nix @@ -21,20 +21,22 @@ let # Create an animated CSS that equally spreads out the colours over # the animation duration (1min). - animatedCss = colours: let - # Calculate at which percentage offset each colour should appear. - stepSize = 100 / ((builtins.length colours) - 1); - frames = lib.imap0 (idx: colour: { inherit colour; at = idx * stepSize; }) colours; - frameCss = frame: "${toString frame.at}% { fill: ${frame.colour}; }"; - in '' - #armchair-background { - animation: 30s infinite alternate armchairPalette; - } + animatedCss = colours: + let + # Calculate at which percentage offset each colour should appear. + stepSize = 100 / ((builtins.length colours) - 1); + frames = lib.imap0 (idx: colour: { inherit colour; at = idx * stepSize; }) colours; + frameCss = frame: "${toString frame.at}% { fill: ${frame.colour}; }"; + in + '' + #armchair-background { + animation: 30s infinite alternate armchairPalette; + } - @keyframes armchairPalette { - ${lib.concatStringsSep "\n" (map frameCss frames)} - } - ''; + @keyframes armchairPalette { + ${lib.concatStringsSep "\n" (map frameCss frames)} + } + ''; # Dark version of the logo, suitable for light backgrounds. darkCss = armchairCss: '' @@ -67,7 +69,8 @@ let ''; -in depot.nix.readTree.drvTargets(lib.fix (self: { +in +depot.nix.readTree.drvTargets (lib.fix (self: { # Expose the logo construction functions. inherit palette darkCss lightCss animatedCss staticCss; @@ -75,7 +78,7 @@ in depot.nix.readTree.drvTargets(lib.fix (self: { logoSvg = style: pkgs.writeText "logo.svg" (logoSvg style); # Create a PNG of the TVL logo with the specified style and DPI. - logoPng = style: dpi: pkgs.runCommandNoCC "logo.png" {} '' + logoPng = style: dpi: pkgs.runCommandNoCC "logo.png" { } '' ${pkgs.inkscape}/bin/inkscape \ --export-area-drawing \ --export-background-opacity 0 \ @@ -87,7 +90,8 @@ in depot.nix.readTree.drvTargets(lib.fix (self: { pastelRainbow = self.logoSvg (darkCss (animatedCss (lib.attrValues palette))); } -# Add individual outputs for static dark logos of each colour. -// (lib.mapAttrs' - (k: v: lib.nameValuePair "${k}Png" - (self.logoPng (darkCss (staticCss v)) 96)) palette))) + # Add individual outputs for static dark logos of each colour. + // (lib.mapAttrs' + (k: v: lib.nameValuePair "${k}Png" + (self.logoPng (darkCss (staticCss v)) 96)) + palette))) diff --git a/web/tvl/template/default.nix b/web/tvl/template/default.nix index 6ccc10de62..6b6a5b0303 100644 --- a/web/tvl/template/default.nix +++ b/web/tvl/template/default.nix @@ -1,6 +1,7 @@ { depot, pkgs, lib, ... }: -{ # content of the tag +{ + # content of the <title> tag title # main part of the page, usually wrapped with <main> , content @@ -17,7 +18,8 @@ let inherit (depot.tools) cheddar; in -runCommandNoCC "${lib.strings.sanitizeDerivationName title}-index.html" { +runCommandNoCC "${lib.strings.sanitizeDerivationName title}-index.html" +{ headerPart = '' <!DOCTYPE html> <head> @@ -36,11 +38,11 @@ runCommandNoCC "${lib.strings.sanitizeDerivationName title}-index.html" { inherit content; footerPart = '' - <hr> - <footer> - ${depot.web.tvl.footer args} - </footer> - </body> + <hr> + <footer> + ${depot.web.tvl.footer args} + </footer> + </body> ''; passAsFile = [ "headerPart" "content" "footerPart" ]; -- cgit 1.4.1