1
0
Fork 0
nix-configuration/templates/module/default.nix

55 lines
1.3 KiB
Nix
Raw Permalink Normal View History

# This is an example of a blank module.
{
config,
lib,
namespace,
...
}:
let
2024-12-06 18:04:47 +00:00
cfg = config.${namespace}.services.myModule;
in
{
options = {
2024-12-06 18:04:47 +00:00
${namespace}.services.myModule = {
2024-09-08 15:58:56 +00:00
enable = lib.mkEnableOption "Enables this example module.";
attributes = lib.mkOption {
default = { };
type = lib.types.attrs;
description = "An example of an attributes option.";
};
string = lib.mkOption {
default = "";
type = lib.types.str;
description = "An example of a string option.";
};
list = lib.mkOption {
default = [ ];
type = lib.types.listOf lib.types.int;
description = "An example of a list (of integers) option.";
};
enum = lib.mkOption {
default = "one";
type = lib.types.enum [
"one"
"two"
];
description = "An example of an enum option.";
};
};
};
2024-05-22 20:47:55 +00:00
config = lib.mkIf cfg.enable {
# Define the changes applied by this module here.
};
2024-09-07 17:44:14 +00:00
systemd.services = {
# Tell systemd to wait for the module's configuration directory to be available before starting the service.
2024-09-07 17:44:14 +00:00
myModule.unitConfig.RequiresMountsFor = cfg.home;
# Tell Nginx to wait for the service to be available before coming online.
2024-09-07 17:44:14 +00:00
nginx.wants = [ config.systemd.services.myModule.name ];
};
}