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
|
|
@ -43,10 +43,13 @@ let
|
|||
children = readDir path;
|
||||
isVisible = f: f == ".skip-subtree" || (substring 0 1 f) != ".";
|
||||
names = filter isVisible (attrNames children);
|
||||
in listToAttrs (map (name: {
|
||||
inherit name;
|
||||
value = children.${name};
|
||||
}) names);
|
||||
in
|
||||
listToAttrs (map
|
||||
(name: {
|
||||
inherit name;
|
||||
value = children.${name};
|
||||
})
|
||||
names);
|
||||
|
||||
# Create a mark containing the location of this attribute and
|
||||
# a list of all child attribute names added by readTree.
|
||||
|
|
@ -57,12 +60,13 @@ let
|
|||
|
||||
# Import a file and enforce our calling convention
|
||||
importFile = args: scopedArgs: path: parts: filter:
|
||||
let
|
||||
importedFile = if scopedArgs != {}
|
||||
then builtins.scopedImport scopedArgs path
|
||||
else import path;
|
||||
let
|
||||
importedFile =
|
||||
if scopedArgs != { }
|
||||
then builtins.scopedImport scopedArgs path
|
||||
else import path;
|
||||
pathType = builtins.typeOf importedFile;
|
||||
in
|
||||
in
|
||||
if pathType != "lambda"
|
||||
then builtins.throw "readTree: trying to import ${toString path}, but it’s a ${pathType}, you need to make it a function like { depot, pkgs, ... }"
|
||||
else importedFile (filter parts (argsWithPath args parts));
|
||||
|
|
@ -76,8 +80,9 @@ let
|
|||
dir = readDirVisible initPath;
|
||||
joinChild = c: initPath + ("/" + c);
|
||||
|
||||
self = if rootDir
|
||||
then { __readTree = []; }
|
||||
self =
|
||||
if rootDir
|
||||
then { __readTree = [ ]; }
|
||||
else importFile args scopedArgs initPath parts argsFilter;
|
||||
|
||||
# Import subdirectories of the current one, unless the special
|
||||
|
|
@ -88,33 +93,41 @@ let
|
|||
# should be ignored, but its content is not inspected by
|
||||
# readTree
|
||||
filterDir = f: dir."${f}" == "directory";
|
||||
children = if hasAttr ".skip-subtree" dir then [] else map (c: {
|
||||
name = c;
|
||||
value = readTree {
|
||||
inherit argsFilter scopedArgs;
|
||||
args = args;
|
||||
initPath = (joinChild c);
|
||||
rootDir = false;
|
||||
parts = (parts ++ [ c ]);
|
||||
};
|
||||
}) (filter filterDir (attrNames dir));
|
||||
children = if hasAttr ".skip-subtree" dir then [ ] else
|
||||
map
|
||||
(c: {
|
||||
name = c;
|
||||
value = readTree {
|
||||
inherit argsFilter scopedArgs;
|
||||
args = args;
|
||||
initPath = (joinChild c);
|
||||
rootDir = false;
|
||||
parts = (parts ++ [ c ]);
|
||||
};
|
||||
})
|
||||
(filter filterDir (attrNames dir));
|
||||
|
||||
# Import Nix files
|
||||
nixFiles = if hasAttr ".skip-subtree" dir then []
|
||||
nixFiles =
|
||||
if hasAttr ".skip-subtree" dir then [ ]
|
||||
else filter (f: f != null) (map nixFileName (attrNames dir));
|
||||
nixChildren = map (c: let
|
||||
p = joinChild (c + ".nix");
|
||||
childParts = parts ++ [ c ];
|
||||
imported = importFile args scopedArgs p childParts argsFilter;
|
||||
in {
|
||||
name = c;
|
||||
value =
|
||||
if isAttrs imported
|
||||
then imported // marker childParts {}
|
||||
else imported;
|
||||
}) nixFiles;
|
||||
nixChildren = map
|
||||
(c:
|
||||
let
|
||||
p = joinChild (c + ".nix");
|
||||
childParts = parts ++ [ c ];
|
||||
imported = importFile args scopedArgs p childParts argsFilter;
|
||||
in
|
||||
{
|
||||
name = c;
|
||||
value =
|
||||
if isAttrs imported
|
||||
then imported // marker childParts { }
|
||||
else imported;
|
||||
})
|
||||
nixFiles;
|
||||
|
||||
nodeValue = if dir ? "default.nix" then self else {};
|
||||
nodeValue = if dir ? "default.nix" then self else { };
|
||||
|
||||
allChildren = listToAttrs (
|
||||
if dir ? "default.nix"
|
||||
|
|
@ -123,9 +136,9 @@ let
|
|||
);
|
||||
|
||||
in
|
||||
if isAttrs nodeValue
|
||||
then nodeValue // allChildren // (marker parts allChildren)
|
||||
else nodeValue;
|
||||
if isAttrs nodeValue
|
||||
then nodeValue // allChildren // (marker parts allChildren)
|
||||
else nodeValue;
|
||||
|
||||
# Function which can be used to find all readTree targets within an
|
||||
# attribute set.
|
||||
|
|
@ -143,40 +156,42 @@ let
|
|||
# should be included in the build.
|
||||
gather = eligible: node:
|
||||
if node ? __readTree then
|
||||
# Include the node itself if it is eligible.
|
||||
(if eligible node then [ node ] else [])
|
||||
# Include the node itself if it is eligible.
|
||||
(if eligible node then [ node ] else [ ])
|
||||
# Include eligible children of the node
|
||||
++ concatMap (gather eligible) (map (attr: node."${attr}") node.__readTreeChildren)
|
||||
# Include specified sub-targets of the node
|
||||
++ filter eligible (map
|
||||
(k: (node."${k}" or {}) // {
|
||||
# Keep the same tree location, but explicitly mark this
|
||||
# node as a subtarget.
|
||||
__readTree = node.__readTree;
|
||||
__readTreeChildren = [];
|
||||
__subtarget = k;
|
||||
})
|
||||
(node.meta.targets or []))
|
||||
else [];
|
||||
(k: (node."${k}" or { }) // {
|
||||
# Keep the same tree location, but explicitly mark this
|
||||
# node as a subtarget.
|
||||
__readTree = node.__readTree;
|
||||
__readTreeChildren = [ ];
|
||||
__subtarget = k;
|
||||
})
|
||||
(node.meta.targets or [ ]))
|
||||
else [ ];
|
||||
|
||||
# Determine whether a given value is a derivation.
|
||||
# Copied from nixpkgs/lib for cases where lib is not available yet.
|
||||
isDerivation = x: isAttrs x && x ? type && x.type == "derivation";
|
||||
in {
|
||||
in
|
||||
{
|
||||
inherit gather;
|
||||
|
||||
__functor = _:
|
||||
{ path
|
||||
, args
|
||||
, filter ? (_parts: x: x)
|
||||
, scopedArgs ? {} }:
|
||||
readTree {
|
||||
inherit args scopedArgs;
|
||||
argsFilter = filter;
|
||||
initPath = path;
|
||||
rootDir = true;
|
||||
parts = [];
|
||||
};
|
||||
, scopedArgs ? { }
|
||||
}:
|
||||
readTree {
|
||||
inherit args scopedArgs;
|
||||
argsFilter = filter;
|
||||
initPath = path;
|
||||
rootDir = true;
|
||||
parts = [ ];
|
||||
};
|
||||
|
||||
# In addition to readTree itself, some functionality is exposed that
|
||||
# is useful for users of readTree.
|
||||
|
|
@ -193,7 +208,7 @@ in {
|
|||
# which should be able to access the restricted folder.
|
||||
#
|
||||
# reason: Textual explanation for the restriction (included in errors)
|
||||
restrictFolder = { folder, exceptions ? [], reason }: parts: args:
|
||||
restrictFolder = { folder, exceptions ? [ ], reason }: parts: args:
|
||||
if (elemAt parts 0) == folder || elem parts exceptions
|
||||
then args
|
||||
else args // {
|
||||
|
|
@ -224,8 +239,8 @@ in {
|
|||
drvTargets = attrs: attrs // {
|
||||
meta = {
|
||||
targets = builtins.filter
|
||||
(x: isDerivation attrs."${x}")
|
||||
(builtins.attrNames attrs);
|
||||
} // (attrs.meta or {});
|
||||
(x: isDerivation attrs."${x}")
|
||||
(builtins.attrNames attrs);
|
||||
} // (attrs.meta or { });
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue