blog posts
-
- '' + lib.concatMapStrings (post: ''
+ '' + lib.concatMapStrings
+ (post: ''
- ${parseTitle post} - '') posts + '' + '') + posts + ''
From aa122cbae78ce97d60c0c98ba14df753d97e40b1 Mon Sep 17 00:00:00 2001
From: Vincent Ambo
- ${escape name}
-
- ${escape name}
+
+
-
-
+
+
+
'';
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: ''
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)}
-
+
ಠ_ಠ
'' 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