From a323d146b7be3bc066b4ec74db72888ea32792fb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 15 Aug 2014 02:07:43 +0200 Subject: Add user attribute isNormalUser This is shorthand for setting group, createHome, home, useDefaultShell and isSystemUser. --- nixos/modules/config/users-groups.nix | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'nixos/modules/config/users-groups.nix') diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix index 75d1b6f7ff48..f32138a814dd 100644 --- a/nixos/modules/config/users-groups.nix +++ b/nixos/modules/config/users-groups.nix @@ -70,6 +70,21 @@ let ''; }; + isNormalUser = mkOption { + type = types.bool; + default = false; + description = '' + Indicates whether this is an account for a “real” user. This + automatically sets to + users, to + true, to + /home/username, + to true, + and to + false. + ''; + }; + group = mkOption { type = types.str; default = "nogroup"; @@ -148,10 +163,18 @@ let }; }; - config = { - name = mkDefault name; - shell = mkIf config.useDefaultShell (mkDefault cfg.defaultUserShell); - }; + config = mkMerge + [ { name = mkDefault name; + shell = mkIf config.useDefaultShell (mkDefault cfg.defaultUserShell); + } + (mkIf config.isNormalUser { + group = mkDefault "users"; + createHome = mkDefault true; + home = mkDefault "/home/${name}"; + useDefaultShell = mkDefault true; + isSystemUser = mkDefault false; + }) + ]; }; -- cgit v1.2.3