Reformat with nixpkgs-fmt
diff --git a/utils/interpretNonstandardModule.nix b/utils/interpretNonstandardModule.nix
index da98966..1a606a5 100644
--- a/utils/interpretNonstandardModule.nix
+++ b/utils/interpretNonstandardModule.nix
@@ -3,96 +3,106 @@
# This function takes a list of modules, as well as arguments to import them
# with, and returns a list of modules, each with the standard NixOS module
# properties as well as with custom properties as described in /README.md
-lib: transformArgs: modules: args @ {pkgs, ...}: let
- resolver = module: let
- importedModule =
- if builtins.typeOf module == "path"
- then import module
- else module;
- resolvedModule =
- if builtins.typeOf importedModule == "lambda"
- then
- importedModule
- (transformArgs args)
- else importedModule;
- moduleName =
- if builtins.typeOf module == "lambda"
- then "<AnonFunction>"
- else if builtins.typeOf module == "path"
- then builtins.toString module
- else builtins.toJSON module;
- in
- lib.warnIfNot
- ((lib.pipe resolvedModule [
- builtins.attrNames
- (lib.subtractLists ["home" "config" "imports" "options" "traces"])
- ])
- == [])
- "Module ${moduleName} had attribute names ${builtins.toJSON (builtins.attrNames resolvedModule)} but only home, config, imports and options are resolved"
- [
- {
- config = lib.recursiveUpdate (resolvedModule.config or {}) {
- home-manager.users."${args.username}".imports =
- (resolvedModule.config.home-manager.users."${args.username}".imports or [])
- ++ [resolvedModule.home or {}];
- };
- imports = resolvedModule.imports or [];
- options = resolvedModule.options or {};
- }
- ]
- ++ (builtins.map (trace: let
- splitTrace = lib.splitString "." trace;
- traceHead = builtins.head splitTrace;
- traceTail = builtins.tail splitTrace;
- resolvedTrace =
- (
- if traceHead == "home"
- then ["home-manager" "users" args.username]
- else lib.errorIfNot (traceHead == "config") []
- )
- ++ traceTail;
+lib: transformArgs: modules: args @ { pkgs, ... }:
+let
+ resolver = module:
+ let
+ importedModule =
+ if builtins.typeOf module == "path"
+ then import module
+ else module;
+ resolvedModule =
+ if builtins.typeOf importedModule == "lambda"
+ then
+ importedModule
+ (transformArgs args)
+ else importedModule;
+ moduleName =
+ if builtins.typeOf module == "lambda"
+ then "<AnonFunction>"
+ else if builtins.typeOf module == "path"
+ then builtins.toString module
+ else builtins.toJSON module;
in
- {config, ...}: (builtins.seq (
- lib.pipe resolvedTrace [
- (lib.foldl ({
- value,
- error,
- }: key:
- if builtins.hasAttr key value
- then {
- value = value.${key};
- inherit error;
- }
- else {
- value = {};
- error = true;
- }) {
- value = {};
- error = false;
- })
- (data: lib.warnIf data.error "trace@${moduleName}/${trace} is invalid; the key does not exist" data)
- ({
- value,
- error,
- }: {
- value = builtins.toJSON value;
- inherit error;
- })
- ({
- value,
- error,
- }: {
- value = "trace@${moduleName}/${trace}: ${value}";
- inherit error;
- })
- ({
- value,
- error,
- }:
- lib.traceIf (!error) value null)
- ]
- ) {})) (resolvedModule.traces or []));
-in {
+ lib.warnIfNot
+ ((lib.pipe resolvedModule [
+ builtins.attrNames
+ (lib.subtractLists [ "home" "config" "imports" "options" "traces" ])
+ ])
+ == [ ])
+ "Module ${moduleName} had attribute names ${builtins.toJSON (builtins.attrNames resolvedModule)} but only home, config, imports and options are resolved"
+ [
+ {
+ config = lib.recursiveUpdate (resolvedModule.config or { }) {
+ home-manager.users."${args.username}".imports =
+ (resolvedModule.config.home-manager.users."${args.username}".imports or [ ])
+ ++ [ resolvedModule.home or { } ];
+ };
+ imports = resolvedModule.imports or [ ];
+ options = resolvedModule.options or { };
+ }
+ ]
+ ++ (builtins.map
+ (trace:
+ let
+ splitTrace = lib.splitString "." trace;
+ traceHead = builtins.head splitTrace;
+ traceTail = builtins.tail splitTrace;
+ resolvedTrace =
+ (
+ if traceHead == "home"
+ then [ "home-manager" "users" args.username ]
+ else lib.errorIfNot (traceHead == "config") [ ]
+ )
+ ++ traceTail;
+ in
+ { config, ... }: (builtins.seq
+ (
+ lib.pipe resolvedTrace [
+ (lib.foldl
+ ({ value
+ , error
+ ,
+ }: key:
+ if builtins.hasAttr key value
+ then {
+ value = value.${key};
+ inherit error;
+ }
+ else {
+ value = { };
+ error = true;
+ })
+ {
+ value = { };
+ error = false;
+ })
+ (data: lib.warnIf data.error "trace@${moduleName}/${trace} is invalid; the key does not exist" data)
+ ({ value
+ , error
+ ,
+ }: {
+ value = builtins.toJSON value;
+ inherit error;
+ })
+ ({ value
+ , error
+ ,
+ }: {
+ value = "trace@${moduleName}/${trace}: ${value}";
+ inherit error;
+ })
+ ({ value
+ , error
+ ,
+ }:
+ lib.traceIf (!error) value null)
+ ]
+ )
+ { }))
+ (resolvedModule.traces or [ ]));
+in
+{
imports = (
if builtins.typeOf modules == "list"
then builtins.concatLists (builtins.map resolver modules)