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
|
|
@ -9,7 +9,7 @@ let
|
|||
runExeclineLocal = name: args: execline:
|
||||
runExecline name
|
||||
(args // {
|
||||
derivationArgs = args.derivationArgs or {} // {
|
||||
derivationArgs = args.derivationArgs or { } // {
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
};
|
||||
|
|
@ -23,7 +23,8 @@ let
|
|||
inherit pkgs;
|
||||
};
|
||||
|
||||
in {
|
||||
in
|
||||
{
|
||||
__functor = _: runExecline;
|
||||
local = runExeclineLocal;
|
||||
inherit tests;
|
||||
|
|
|
|||
|
|
@ -35,32 +35,32 @@
|
|||
|
||||
let
|
||||
bins = getBins pkgs.execline [
|
||||
"execlineb"
|
||||
{ use = "if"; as = "execlineIf"; }
|
||||
"redirfd"
|
||||
"importas"
|
||||
"exec"
|
||||
]
|
||||
// getBins pkgs.s6-portable-utils [
|
||||
"s6-cat"
|
||||
"s6-grep"
|
||||
"s6-touch"
|
||||
"s6-test"
|
||||
"s6-chmod"
|
||||
];
|
||||
"execlineb"
|
||||
{ use = "if"; as = "execlineIf"; }
|
||||
"redirfd"
|
||||
"importas"
|
||||
"exec"
|
||||
]
|
||||
// getBins pkgs.s6-portable-utils [
|
||||
"s6-cat"
|
||||
"s6-grep"
|
||||
"s6-touch"
|
||||
"s6-test"
|
||||
"s6-chmod"
|
||||
];
|
||||
|
||||
in
|
||||
|
||||
# TODO: move name into the attrset
|
||||
name:
|
||||
{
|
||||
# a string to pass as stdin to the execline script
|
||||
stdin ? ""
|
||||
# a program wrapping the acutal execline invocation;
|
||||
# should be in Bernstein-chaining style
|
||||
# a string to pass as stdin to the execline script
|
||||
stdin ? ""
|
||||
# a program wrapping the acutal execline invocation;
|
||||
# should be in Bernstein-chaining style
|
||||
, builderWrapper ? bins.exec
|
||||
# additional arguments to pass to the derivation
|
||||
, derivationArgs ? {}
|
||||
# additional arguments to pass to the derivation
|
||||
, derivationArgs ? { }
|
||||
}:
|
||||
# the execline script as a nested list of string,
|
||||
# representing the blocks;
|
||||
|
|
@ -90,33 +90,33 @@ derivation (derivationArgs // {
|
|||
passAsFile = [
|
||||
"_runExeclineScript"
|
||||
"_runExeclineStdin"
|
||||
] ++ derivationArgs.passAsFile or [];
|
||||
] ++ derivationArgs.passAsFile or [ ];
|
||||
|
||||
# the default, exec acts as identity executable
|
||||
builder = builderWrapper;
|
||||
|
||||
args = [
|
||||
bins.importas # import script file as $script
|
||||
"-ui" # drop the envvar afterwards
|
||||
"script" # substitution name
|
||||
bins.importas # import script file as $script
|
||||
"-ui" # drop the envvar afterwards
|
||||
"script" # substitution name
|
||||
"_runExeclineScriptPath" # passed script file
|
||||
|
||||
bins.importas # do the same for $stdin
|
||||
bins.importas # do the same for $stdin
|
||||
"-ui"
|
||||
"stdin"
|
||||
"_runExeclineStdinPath"
|
||||
|
||||
bins.redirfd # now we
|
||||
"-r" # read the file
|
||||
"0" # into the stdin of execlineb
|
||||
"$stdin" # that was given via stdin
|
||||
bins.redirfd # now we
|
||||
"-r" # read the file
|
||||
"0" # into the stdin of execlineb
|
||||
"$stdin" # that was given via stdin
|
||||
|
||||
bins.execlineb # the actual invocation
|
||||
bins.execlineb # the actual invocation
|
||||
# TODO(Profpatsch): depending on the use-case, -S0 might not be enough
|
||||
# in all use-cases, then a wrapper for execlineb arguments
|
||||
# should be added (-P, -S, -s).
|
||||
"-S0" # set $@ inside the execline script
|
||||
"-W" # die on syntax error
|
||||
"$script" # substituted by importas
|
||||
"-S0" # set $@ inside the execline script
|
||||
"-W" # die on syntax error
|
||||
"$script" # substituted by importas
|
||||
];
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,23 +1,29 @@
|
|||
{ stdenv, pkgs, runExecline, runExeclineLocal, getBins, writeScript
|
||||
# https://www.mail-archive.com/skaware@list.skarnet.org/msg01256.html
|
||||
, coreutils }:
|
||||
{ stdenv
|
||||
, pkgs
|
||||
, runExecline
|
||||
, runExeclineLocal
|
||||
, getBins
|
||||
, writeScript
|
||||
# https://www.mail-archive.com/skaware@list.skarnet.org/msg01256.html
|
||||
, coreutils
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
bins = getBins coreutils [ "mv" ]
|
||||
// getBins pkgs.execline [
|
||||
"execlineb"
|
||||
{ use = "if"; as = "execlineIf"; }
|
||||
"redirfd"
|
||||
"importas"
|
||||
]
|
||||
// getBins pkgs.s6-portable-utils [
|
||||
"s6-chmod"
|
||||
"s6-grep"
|
||||
"s6-touch"
|
||||
"s6-cat"
|
||||
"s6-test"
|
||||
];
|
||||
// getBins pkgs.execline [
|
||||
"execlineb"
|
||||
{ use = "if"; as = "execlineIf"; }
|
||||
"redirfd"
|
||||
"importas"
|
||||
]
|
||||
// getBins pkgs.s6-portable-utils [
|
||||
"s6-chmod"
|
||||
"s6-grep"
|
||||
"s6-touch"
|
||||
"s6-cat"
|
||||
"s6-test"
|
||||
];
|
||||
|
||||
# execline block of depth 1
|
||||
block = args: builtins.map (arg: " ${arg}") args ++ [ "" ];
|
||||
|
|
@ -31,49 +37,80 @@ let
|
|||
builder = bins.execlineIf;
|
||||
args =
|
||||
(block [
|
||||
bins.redirfd "-r" "0" file # read file to stdin
|
||||
bins.s6-grep "-F" "-q" line # and grep for the line
|
||||
bins.redirfd
|
||||
"-r"
|
||||
"0"
|
||||
file # read file to stdin
|
||||
bins.s6-grep
|
||||
"-F"
|
||||
"-q"
|
||||
line # and grep for the line
|
||||
])
|
||||
++ [
|
||||
# if the block succeeded, touch $out
|
||||
bins.importas "-ui" "out" "out"
|
||||
bins.s6-touch "$out"
|
||||
bins.importas
|
||||
"-ui"
|
||||
"out"
|
||||
"out"
|
||||
bins.s6-touch
|
||||
"$out"
|
||||
];
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
};
|
||||
|
||||
# basic test that touches out
|
||||
basic = runExeclineLocal "run-execline-test-basic" {
|
||||
} [
|
||||
"importas" "-ui" "out" "out"
|
||||
"${bins.s6-touch}" "$out"
|
||||
basic = runExeclineLocal "run-execline-test-basic"
|
||||
{ } [
|
||||
"importas"
|
||||
"-ui"
|
||||
"out"
|
||||
"out"
|
||||
"${bins.s6-touch}"
|
||||
"$out"
|
||||
];
|
||||
|
||||
# whether the stdin argument works as intended
|
||||
stdin = fileHasLine "foo" (runExeclineLocal "run-execline-test-stdin" {
|
||||
stdin = "foo\nbar\nfoo";
|
||||
} [
|
||||
"importas" "-ui" "out" "out"
|
||||
# this pipes stdout of s6-cat to $out
|
||||
# and s6-cat redirects from stdin to stdout
|
||||
"redirfd" "-w" "1" "$out" bins.s6-cat
|
||||
stdin = fileHasLine "foo" (runExeclineLocal "run-execline-test-stdin"
|
||||
{
|
||||
stdin = "foo\nbar\nfoo";
|
||||
} [
|
||||
"importas"
|
||||
"-ui"
|
||||
"out"
|
||||
"out"
|
||||
# this pipes stdout of s6-cat to $out
|
||||
# and s6-cat redirects from stdin to stdout
|
||||
"redirfd"
|
||||
"-w"
|
||||
"1"
|
||||
"$out"
|
||||
bins.s6-cat
|
||||
]);
|
||||
|
||||
|
||||
wrapWithVar = runExeclineLocal "run-execline-test-wrap-with-var" {
|
||||
builderWrapper = writeScript "var-wrapper" ''
|
||||
#!${bins.execlineb} -S0
|
||||
export myvar myvalue $@
|
||||
'';
|
||||
} [
|
||||
"importas" "-ui" "v" "myvar"
|
||||
"if" [ bins.s6-test "myvalue" "=" "$v" ]
|
||||
"importas" "out" "out"
|
||||
bins.s6-touch "$out"
|
||||
wrapWithVar = runExeclineLocal "run-execline-test-wrap-with-var"
|
||||
{
|
||||
builderWrapper = writeScript "var-wrapper" ''
|
||||
#!${bins.execlineb} -S0
|
||||
export myvar myvalue $@
|
||||
'';
|
||||
} [
|
||||
"importas"
|
||||
"-ui"
|
||||
"v"
|
||||
"myvar"
|
||||
"if"
|
||||
[ bins.s6-test "myvalue" "=" "$v" ]
|
||||
"importas"
|
||||
"out"
|
||||
"out"
|
||||
bins.s6-touch
|
||||
"$out"
|
||||
];
|
||||
|
||||
in [
|
||||
in
|
||||
[
|
||||
basic
|
||||
stdin
|
||||
wrapWithVar
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue