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 <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>
This commit is contained in:
parent
2d10d60fac
commit
aa122cbae7
310 changed files with 7278 additions and 5490 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
]
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue