base/import/user.nix

34 lines
687 B
Nix

let
function =
name: value:
let
result = if builtins.isAttrs value then { ... }: value else value;
result' = builtins.trace "result ${name}=${builtins.typeOf result}" result;
in
assert builtins.isFunction result';
result;
config =
{
user ? { },
home-manager ? { },
}@set:
builtins.mapAttrs function { inherit user home-manager; };
in
name: value:
let
result =
if builtins.isFunction value then
config { user = value; }
else if
builtins.any (attr: builtins.hasAttr attr value) [
"user"
"home-manager"
]
then
config value
else
config { user = value; };
in
result