summaryrefslogtreecommitdiff
path: root/parts/modules/nixos/base/root.nix
blob: ecc5203cf595392a8aea21d2558a4fad8934f4e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  config,
  lib,
  ...
}: let
  cfg = config.base.defaultRoot;
  inherit (lib) mkDefault mkEnableOption mkIf;

  # yes this is a bad way to detect which option should be used (or exists)
  # but i'm lazy. please do not copy this
  passwordFile =
    if lib.versionAtLeast config.system.stateVersion "23.11"
    then "hashedPasswordFile"
    else "passwordFile";
in {
  options.base.defaultRoot.enable = mkEnableOption "default root user";

  config = mkIf cfg.enable {
    users.users.root = {
      home = mkDefault "/root";
      uid = mkDefault config.ids.uids.root;
      group = mkDefault "root";
      "${passwordFile}" = mkDefault config.age.secrets.rootPassword.path;
    };
  };
}