summaryrefslogtreecommitdiff
path: root/options.nix
blob: 6f4256bd545503ac68d17aeb2986ad3683b85f07 (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
27
28
29
{config, lib, ...}: let
  alex = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII42yGEm1u3FxKdgox6Kkp9IBgBERVKrcIjQkrVbEO3m alex@kassouni.net";
in {
  options.my = {
    adminKeys = lib.mkOption {
      type = with lib.types; listOf singleLineStr;
      description = ''
        Keys granted an interactive shell in the wheel group, i.e. root by way
        of sudo. Only add a key you would trust with the whole machine.
      '';
    };

    gitKeys = lib.mkOption {
      type = with lib.types; listOf singleLineStr;
      description = ''
        Keys granted git-shell access to the repositories under /srv/git.
        No interactive shell and no sudo, so this is the list to grow when
        someone needs to push.
      '';
    };
  };

  config.my = {
    adminKeys = [ alex ];

    # Admins push too; collaborator keys belong here and nowhere else.
    gitKeys = config.my.adminKeys;
  };
}