mirror of
https://github.com/nix-community/home-manager.git
synced 2025-03-31 04:04:32 +00:00
Merge 319b012b9d
into 7170300119
This commit is contained in:
commit
b7070a69c7
2 changed files with 19 additions and 9 deletions
|
@ -54,17 +54,17 @@ let
|
|||
|
||||
hmPath = toString ./..;
|
||||
|
||||
buildOptionsDocs = args@{ modules, includeModuleSystemOptions ? true, ... }:
|
||||
buildOptionsDocs =
|
||||
args@{ modules, includeModuleSystemOptions ? true, isNixos ? false, ... }:
|
||||
let
|
||||
options = (lib.evalModules {
|
||||
inherit modules;
|
||||
class = "homeManager";
|
||||
}).options;
|
||||
in pkgs.buildPackages.nixosOptionsDoc ({
|
||||
options = if includeModuleSystemOptions then
|
||||
options
|
||||
else
|
||||
builtins.removeAttrs options [ "_module" ];
|
||||
options = builtins.removeAttrs options ([ ]
|
||||
++ (lib.optional (!includeModuleSystemOptions) "_module")
|
||||
++ (lib.optional (isNixos) "users"));
|
||||
transformOptions = opt:
|
||||
opt // {
|
||||
# Clean up declaration sites to not refer to the Home Manager
|
||||
|
@ -80,7 +80,11 @@ let
|
|||
else
|
||||
decl) opt.declarations;
|
||||
};
|
||||
} // builtins.removeAttrs args [ "modules" "includeModuleSystemOptions" ]);
|
||||
} // builtins.removeAttrs args [
|
||||
"modules"
|
||||
"includeModuleSystemOptions"
|
||||
"isNixos"
|
||||
]);
|
||||
|
||||
hmOptionsDocs = buildOptionsDocs {
|
||||
modules = import ../modules/modules.nix {
|
||||
|
@ -93,6 +97,7 @@ let
|
|||
nixosOptionsDocs = buildOptionsDocs {
|
||||
modules = [ ../nixos scrubbedPkgsModule dontCheckDefinitions ];
|
||||
includeModuleSystemOptions = false;
|
||||
isNixos = true;
|
||||
variablelistId = "nixos-options";
|
||||
optionIdPrefix = "nixos-opt-";
|
||||
};
|
||||
|
@ -100,6 +105,7 @@ let
|
|||
nixDarwinOptionsDocs = buildOptionsDocs {
|
||||
modules = [ ../nix-darwin scrubbedPkgsModule dontCheckDefinitions ];
|
||||
includeModuleSystemOptions = false;
|
||||
isNixos = true;
|
||||
variablelistId = "nix-darwin-options";
|
||||
optionIdPrefix = "nix-darwin-opt-";
|
||||
};
|
||||
|
|
|
@ -50,6 +50,13 @@ let
|
|||
};
|
||||
|
||||
in {
|
||||
options.users.users = mkOption {
|
||||
type = types.attrsOf (types.submodule ({ name, config, ... }: {
|
||||
config.packages = mkIf ((config.enable or true) && cfg.useUserPackages
|
||||
&& lib.hasAttr name cfg.users) [ cfg.users.${name}.home.path ];
|
||||
}));
|
||||
};
|
||||
|
||||
options.home-manager = {
|
||||
useUserPackages = mkEnableOption ''
|
||||
installation of user packages through the
|
||||
|
@ -104,10 +111,7 @@ in {
|
|||
};
|
||||
|
||||
config = (lib.mkMerge [
|
||||
# Fix potential recursion when configuring home-manager users based on values in users.users #594
|
||||
(mkIf (cfg.useUserPackages && cfg.users != { }) {
|
||||
users.users = (lib.mapAttrs
|
||||
(_username: usercfg: { packages = [ usercfg.home.path ]; }) cfg.users);
|
||||
environment.pathsToLink = [ "/etc/profile.d" ];
|
||||
})
|
||||
(mkIf (cfg.users != { }) {
|
||||
|
|
Loading…
Add table
Reference in a new issue