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:
Vincent Ambo 2022-01-30 19:06:58 +03:00 committed by tazjin
parent 2d10d60fac
commit aa122cbae7
310 changed files with 7278 additions and 5490 deletions

View file

@ -19,9 +19,9 @@ let
;
bins = getBins cheddar [ "cheddar" ]
// getBins mandoc [ "mandoc" ]
// getBins coreutils [ "cat" "mv" "mkdir" ]
;
// getBins mandoc [ "mandoc" ]
// getBins coreutils [ "cat" "mv" "mkdir" ]
;
normalizeDrv = fetchurl {
url = "https://necolas.github.io/normalize.css/8.0.1/normalize.css";
@ -29,7 +29,10 @@ let
};
execlineStdoutInto = target: line: [
"redirfd" "-w" "1" target
"redirfd"
"-w"
"1"
target
] ++ line;
# I will not write a pure nix markdown renderer
@ -39,16 +42,24 @@ let
# I will not write a pure nix markdown renderer
markdown = md:
let
html = runExecline.local "rendered-markdown" {
stdin = md;
} ([
"importas" "-iu" "out" "out"
] ++ execlineStdoutInto "$out" [
bins.cheddar "--about-filter" "description.md"
]);
in builtins.readFile html;
html = runExecline.local "rendered-markdown"
{
stdin = md;
}
([
"importas"
"-iu"
"out"
"out"
] ++ execlineStdoutInto "$out" [
bins.cheddar
"--about-filter"
"description.md"
]);
in
builtins.readFile html;
indexTemplate = { title, description, pages ? [] }: ''
indexTemplate = { title, description, pages ? [ ] }: ''
<!doctype html>
<html>
<head>
@ -137,40 +148,40 @@ let
htmlman =
{ title
# title of the index page
# title of the index page
, description ? ""
# description which is displayed after
# the main heading on the index page
, pages ? []
# man pages of the following structure:
# {
# name : string;
# section : int;
# path : either path string;
# }
# path is optional, if it is not given,
# the man page source must be located at
# "${manDir}/${name}.${toString section}"
# description which is displayed after
# the main heading on the index page
, pages ? [ ]
# man pages of the following structure:
# {
# name : string;
# section : int;
# path : either path string;
# }
# path is optional, if it is not given,
# the man page source must be located at
# "${manDir}/${name}.${toString section}"
, manDir ? null
# directory in which man page sources are located
# directory in which man page sources are located
, style ? defaultStyle
# CSS to use as a string
# CSS to use as a string
, normalizeCss ? true
# whether to include normalize.css before the custom CSS
# whether to include normalize.css before the custom CSS
, linkXr ? "all"
# How to handle cross references in the html output:
#
# * none: don't convert cross references into hyperlinks
# * all: link all cross references as if they were
# rendered into $out by htmlman
# * inManDir: link to all man pages which have their source
# in `manDir` and use the format string defined
# in linkXrFallback for all other cross references.
# How to handle cross references in the html output:
#
# * none: don't convert cross references into hyperlinks
# * all: link all cross references as if they were
# rendered into $out by htmlman
# * inManDir: link to all man pages which have their source
# in `manDir` and use the format string defined
# in linkXrFallback for all other cross references.
, linkXrFallback ? "https://manpages.debian.org/unstable/%N.%S.en.html"
# fallback link to use if linkXr == "inManDir" and the man
# page is not in ${manDir}. Placeholders %N (name of page)
# and %S (section of page) can be used. See mandoc(1) for
# more information.
# fallback link to use if linkXr == "inManDir" and the man
# page is not in ${manDir}. Placeholders %N (name of page)
# and %S (section of page) can be used. See mandoc(1) for
# more information.
}:
let
@ -188,47 +199,70 @@ let
mandocOpts = lib.concatStringsSep "," ([
"style=style.css"
] ++ linkXrEnum.match linkXr {
all = [ "man=./%N.%S.html" ];
all = [ "man=./%N.%S.html" ];
inManDir = [ "man=./%N.%S.html;${linkXrFallback}" ];
none = [ ];
none = [ ];
});
html =
runExecline.local "htmlman-${title}" {
derivationArgs = {
inherit index style;
passAsFile = [ "index" "style" ];
};
} ([
"multisubstitute" [
"importas" "-iu" "out" "out"
"importas" "-iu" "index" "indexPath"
"importas" "-iu" "style" "stylePath"
]
"if" [ bins.mkdir "-p" "$out" ]
"if" [ bins.mv "$index" "\${out}/index.html" ]
"if" (execlineStdoutInto "\${out}/style.css" [
"if" ([
bins.cat
] ++ lib.optional normalizeCss normalizeDrv
runExecline.local "htmlman-${title}"
{
derivationArgs = {
inherit index style;
passAsFile = [ "index" "style" ];
};
}
([
"multisubstitute"
[
"importas"
"-iu"
"out"
"out"
"importas"
"-iu"
"index"
"indexPath"
"importas"
"-iu"
"style"
"stylePath"
]
"if"
[ bins.mkdir "-p" "$out" ]
"if"
[ bins.mv "$index" "\${out}/index.html" ]
"if"
(execlineStdoutInto "\${out}/style.css" [
"if"
([
bins.cat
] ++ lib.optional normalizeCss normalizeDrv
++ [
"$style"
"$style"
])
])
])
# let mandoc check for available man pages
"execline-cd" "${manDir}"
] ++ lib.concatMap ({ name, section, ... }@p:
execlineStdoutInto "\${out}/${name}.${toString section}.html" [
"if" [
bins.mandoc
"-mdoc"
"-T" "html"
"-O" mandocOpts
(resolvePath p)
]
]) pages);
in html // {
# let mandoc check for available man pages
"execline-cd"
"${manDir}"
] ++ lib.concatMap
({ name, section, ... }@p:
execlineStdoutInto "\${out}/${name}.${toString section}.html" [
"if"
[
bins.mandoc
"-mdoc"
"-T"
"html"
"-O"
mandocOpts
(resolvePath p)
]
])
pages);
in
html // {
deploy = deployScript title html;
};
in
htmlman
htmlman