nixos/bacula: refactor option generation
The generation of the descriptions always used lib explicitly even thoughit was already specified with 'with'. Since using `with lib` is discouraged this was also changed to inherit.
This commit is contained in:
parent
ad2f55dc4e
commit
2af073f716
1 changed files with 45 additions and 35 deletions
|
@ -4,9 +4,19 @@
|
|||
# TODO: test configuration when building nixexpr (use -t parameter)
|
||||
# TODO: support sqlite3 (it's deprecate?) and mysql
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
concatStringsSep
|
||||
literalExpression
|
||||
mapAttrsToList
|
||||
mdDoc
|
||||
mkIf
|
||||
mkOption
|
||||
optional
|
||||
optionalString
|
||||
types
|
||||
;
|
||||
libDir = "/var/lib/bacula";
|
||||
|
||||
yes_no = bool: if bool then "yes" else "no";
|
||||
|
@ -220,7 +230,7 @@ let
|
|||
password = mkOption {
|
||||
type = types.str;
|
||||
# TODO: required?
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specifies the password that must be supplied for the default Bacula
|
||||
Console to be authorized. The same password must appear in the
|
||||
Director resource of the Console configuration file. For added
|
||||
|
@ -241,7 +251,7 @@ let
|
|||
type = types.enum [ "no" "yes" ];
|
||||
default = "no";
|
||||
example = "yes";
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
If Monitor is set to `no`, this director will have
|
||||
full access to this Storage daemon. If Monitor is set to
|
||||
`yes`, this director will only be able to fetch the
|
||||
|
@ -267,7 +277,7 @@ let
|
|||
options = {
|
||||
changerDevice = mkOption {
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The specified name-string must be the generic SCSI device name of the
|
||||
autochanger that corresponds to the normal read/write Archive Device
|
||||
specified in the Device resource. This generic SCSI device name
|
||||
|
@ -286,7 +296,7 @@ let
|
|||
|
||||
changerCommand = mkOption {
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The name-string specifies an external program to be called that will
|
||||
automatically change volumes as required by Bacula. Normally, this
|
||||
directive will be specified only in the AutoChanger resource, which
|
||||
|
@ -308,14 +318,14 @@ let
|
|||
};
|
||||
|
||||
devices = mkOption {
|
||||
description = lib.mdDoc "";
|
||||
description = mdDoc "";
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
|
||||
extraAutochangerConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Autochanger directive.
|
||||
'';
|
||||
example = ''
|
||||
|
@ -332,7 +342,7 @@ let
|
|||
archiveDevice = mkOption {
|
||||
# TODO: required?
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The specified name-string gives the system file name of the storage
|
||||
device managed by this storage daemon. This will usually be the
|
||||
device file name of a removable storage device (tape drive), for
|
||||
|
@ -349,7 +359,7 @@ let
|
|||
mediaType = mkOption {
|
||||
# TODO: required?
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The specified name-string names the type of media supported by this
|
||||
device, for example, `DLT7000`. Media type names are
|
||||
arbitrary in that you set them to anything you want, but they must be
|
||||
|
@ -387,7 +397,7 @@ let
|
|||
extraDeviceConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Device directive.
|
||||
'';
|
||||
example = ''
|
||||
|
@ -408,7 +418,7 @@ in {
|
|||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Whether to enable the Bacula File Daemon.
|
||||
'';
|
||||
};
|
||||
|
@ -417,7 +427,7 @@ in {
|
|||
default = "${config.networking.hostName}-fd";
|
||||
defaultText = literalExpression ''"''${config.networking.hostName}-fd"'';
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The client name that must be used by the Director when connecting.
|
||||
Generally, it is a good idea to use a name related to the machine so
|
||||
that error messages can be easily identified if you have multiple
|
||||
|
@ -428,7 +438,7 @@ in {
|
|||
port = mkOption {
|
||||
default = 9102;
|
||||
type = types.port;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This specifies the port number on which the Client listens for
|
||||
Director connections. It must agree with the FDPort specified in
|
||||
the Client resource of the Director's configuration file.
|
||||
|
@ -437,10 +447,10 @@ in {
|
|||
|
||||
director = mkOption {
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This option defines director resources in Bacula File Daemon.
|
||||
'';
|
||||
type = with types; attrsOf (submodule (directorOptions "services.bacula-fd"));
|
||||
type = types.attrsOf (types.submodule (directorOptions "services.bacula-fd"));
|
||||
};
|
||||
|
||||
|
||||
|
@ -456,7 +466,7 @@ in {
|
|||
extraClientConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Client directive.
|
||||
'';
|
||||
example = ''
|
||||
|
@ -468,7 +478,7 @@ in {
|
|||
extraMessagesConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Messages directive.
|
||||
'';
|
||||
example = ''
|
||||
|
@ -481,7 +491,7 @@ in {
|
|||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Whether to enable Bacula Storage Daemon.
|
||||
'';
|
||||
};
|
||||
|
@ -490,7 +500,7 @@ in {
|
|||
default = "${config.networking.hostName}-sd";
|
||||
defaultText = literalExpression ''"''${config.networking.hostName}-sd"'';
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specifies the Name of the Storage daemon.
|
||||
'';
|
||||
};
|
||||
|
@ -498,7 +508,7 @@ in {
|
|||
port = mkOption {
|
||||
default = 9103;
|
||||
type = types.port;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specifies port number on which the Storage daemon listens for
|
||||
Director connections.
|
||||
'';
|
||||
|
@ -506,32 +516,32 @@ in {
|
|||
|
||||
director = mkOption {
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This option defines Director resources in Bacula Storage Daemon.
|
||||
'';
|
||||
type = with types; attrsOf (submodule (directorOptions "services.bacula-sd"));
|
||||
type = types.attrsOf (types.submodule (directorOptions "services.bacula-sd"));
|
||||
};
|
||||
|
||||
device = mkOption {
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This option defines Device resources in Bacula Storage Daemon.
|
||||
'';
|
||||
type = with types; attrsOf (submodule deviceOptions);
|
||||
type = types.attrsOf (types.submodule deviceOptions);
|
||||
};
|
||||
|
||||
autochanger = mkOption {
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
This option defines Autochanger resources in Bacula Storage Daemon.
|
||||
'';
|
||||
type = with types; attrsOf (submodule autochangerOptions);
|
||||
type = types.attrsOf (types.submodule autochangerOptions);
|
||||
};
|
||||
|
||||
extraStorageConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Storage directive.
|
||||
'';
|
||||
example = ''
|
||||
|
@ -543,7 +553,7 @@ in {
|
|||
extraMessagesConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Messages directive.
|
||||
'';
|
||||
example = ''
|
||||
|
@ -565,7 +575,7 @@ in {
|
|||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Whether to enable Bacula Director Daemon.
|
||||
'';
|
||||
};
|
||||
|
@ -574,7 +584,7 @@ in {
|
|||
default = "${config.networking.hostName}-dir";
|
||||
defaultText = literalExpression ''"''${config.networking.hostName}-dir"'';
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
The director name used by the system administrator. This directive is
|
||||
required.
|
||||
'';
|
||||
|
@ -583,7 +593,7 @@ in {
|
|||
port = mkOption {
|
||||
default = 9101;
|
||||
type = types.port;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specify the port (a positive integer) on which the Director daemon
|
||||
will listen for Bacula Console connections. This same port number
|
||||
must be specified in the Director resource of the Console
|
||||
|
@ -596,7 +606,7 @@ in {
|
|||
password = mkOption {
|
||||
# TODO: required?
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Specifies the password that must be supplied for a Director.
|
||||
'';
|
||||
};
|
||||
|
@ -604,7 +614,7 @@ in {
|
|||
extraMessagesConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Messages directive.
|
||||
'';
|
||||
example = ''
|
||||
|
@ -615,7 +625,7 @@ in {
|
|||
extraDirectorConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration to be passed in Director directive.
|
||||
'';
|
||||
example = ''
|
||||
|
@ -627,7 +637,7 @@ in {
|
|||
extraConfig = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc ''
|
||||
description = mdDoc ''
|
||||
Extra configuration for Bacula Director Daemon.
|
||||
'';
|
||||
example = ''
|
||||
|
|
Loading…
Reference in a new issue