refactor: move options into own module

This commit is contained in:
shimun 2022-12-07 11:43:18 +01:00
parent e1ce751171
commit f794ce0d9e
Signed by: shimun
GPG Key ID: E0420647856EA39E
2 changed files with 45 additions and 27 deletions

View File

@ -1,34 +1,10 @@
{ config, pkgs, lib, ... }: with lib; let
cfg = config.services.ssh-cert-dist;
directoryModule = { name, ... }: {
options = {
name = mkOption {
type = types.str;
default = last (splitString "/" name);
};
fetch = mkOption {
type = types.bool;
default = true;
};
upload = mkOption {
type = types.bool;
default = false;
};
};
};
in
{
options.services.ssh-cert-dist = {
enable = mkEnableOption "ssh-cert-dist";
endpoint = mkOption {
type = types.str;
description = "API endpoint url";
};
directories = mkOption {
type = with types; attrsOf (submodule directoryModule);
default = { };
};
};
config.imports = [
./options.nix
];
config.systemd.user.services = mkIf cfg.enable (mapAttrs'
(path: options: {
inherit (options) name; value = {

42
modules/options.nix Normal file
View File

@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }: with lib; let
directoryModule = { name, ... }: {
options = {
name = mkOption {
type = types.str;
default = last (splitString "/" name);
};
fetch = mkOption {
type = types.bool;
default = true;
};
upload = mkOption {
type = types.bool;
default = false;
};
};
};
endpointOption = mkOption {
type = types.str;
description = "API endpoint url";
default = "https://pki.shimun.net";
};
in
{
options = {
services.ssh-cert-dist = {
enable = mkEnableOption "ssh-cert-dist";
endpoint = endpointOption;
directories = mkOption {
type = with types; attrsOf (submodule directoryModule);
default = { };
};
};
programs.ssh-cert-dist = {
enable = mkEnableOption "ssh-cert-dist client";
endpoint = endpointOption;
};
};
}