diff --git a/flake.nix b/flake.nix index 0e8ca23..9b6d1f0 100644 --- a/flake.nix +++ b/flake.nix @@ -96,11 +96,32 @@ src = self; inputs = inputs // { self = { }; + home-manager = { + lib.hm = { }; + }; }; }; - eval = builtins.tryEval (builtins.attrNames lib.snowfall); + standalone-home = lib.snowfall.home.create-home { + path = ./flake.nix; + name = "test@${system}"; + inherit system; + }; + standalone-special-args = standalone-home.specialArgs; + eval = builtins.tryEval { + snowfall-attrs = builtins.attrNames lib.snowfall; + has-standalone-home-placeholders = + (standalone-special-args ? osConfig) + && (standalone-special-args.osConfig == null) + && (standalone-special-args ? systemConfig) + && (standalone-special-args.systemConfig == null); + has-system-config-aliases = + (builtins.length (builtins.split "systemConfig = config;" (builtins.readFile ./modules/nixos/user/default.nix)) > 1) + && (builtins.length (builtins.split "systemConfig = config;" (builtins.readFile ./modules/darwin/user/default.nix)) > 1); + }; in assert eval.success; + assert eval.value.has-standalone-home-placeholders; + assert eval.value.has-system-config-aliases; { snowfall-lib-eval = pkgs.runCommand "snowfall-lib-eval" { } "mkdir -p $out"; } diff --git a/modules/darwin/user/default.nix b/modules/darwin/user/default.nix index cc6db64..82b41f5 100644 --- a/modules/darwin/user/default.nix +++ b/modules/darwin/user/default.nix @@ -69,6 +69,7 @@ in type = types.submoduleWith { specialArgs = { osConfig = config; + systemConfig = config; modulesPath = "${inputs.home-manager}/modules"; } // config.home-manager.extraSpecialArgs; diff --git a/modules/nixos/user/default.nix b/modules/nixos/user/default.nix index 4deaa38..02c3688 100644 --- a/modules/nixos/user/default.nix +++ b/modules/nixos/user/default.nix @@ -85,6 +85,7 @@ in type = types.submoduleWith { specialArgs = { osConfig = config; + systemConfig = config; modulesPath = "${inputs.home-manager or "/"}/modules"; } // (config.home-manager.extraSpecialArgs or { }); diff --git a/snowfall-lib/home/default.nix b/snowfall-lib/home/default.nix index 601a205..94225e3 100644 --- a/snowfall-lib/home/default.nix +++ b/snowfall-lib/home/default.nix @@ -117,6 +117,8 @@ in inherit (user-metadata) user host; format = "home"; + osConfig = specialArgs.osConfig or null; + systemConfig = specialArgs.systemConfig or null; inputs = snowfall-lib.flake.without-src user-inputs; inherit (snowfall-config) namespace;