flake-parts/setups/nixos: add foodogsquaredUtils to module args

An ugly solution but can't get around much for generating Nix modules with
the modularly set `foodogsquaredLib` so we'll have to make it evaluated before
the NixOS config evaluation.
This commit is contained in:
Gabriel Arazas 2024-03-02 18:20:51 +08:00
parent 21ce62aa00
commit bf52b6b5be
No known key found for this signature in database
GPG Key ID: ADE0C41DAB221FCC
2 changed files with 34 additions and 0 deletions

33
lib/utils/nixos.nix Normal file
View File

@ -0,0 +1,33 @@
{ lib }:
{
# This is only used for home-manager users without a NixOS user counterpart.
mapHomeManagerUser = user: settings:
let
homeDirectory = "/home/${user}";
defaultUserConfig = {
extraGroups = lib.mkDefault [ "wheel" ];
createHome = lib.mkDefault true;
home = lib.mkDefault homeDirectory;
isNormalUser = lib.mkForce true;
};
in
({ lib, ... }: {
home-manager.users."${user}" = { ... }: {
imports = [
{
home.username = user;
home.homeDirectory = homeDirectory;
}
../../configs/home-manager/${user}
];
};
users.users."${user}" = lib.mkMerge [
defaultUserConfig
settings
];
});
}

View File

@ -28,6 +28,7 @@ let
in in
(lib.makeOverridable nixosSystem) { (lib.makeOverridable nixosSystem) {
specialArgs = { specialArgs = {
foodogsquaredUtils = import ../../../lib/utils/nixos.nix { inherit lib; };
foodogsquaredModulesPath = builtins.toString nixosModules; foodogsquaredModulesPath = builtins.toString nixosModules;
}; };
modules = extraModules ++ [{ modules = extraModules ++ [{