dotfiles/overlays/ifstate/module.nix
magic_rb 212bfc8c60
Update secret
Signed-off-by: magic_rb <magic_rb@redalder.org>
2024-01-09 19:21:24 +01:00

54 lines
1 KiB
Nix

{
pkgs,
lib,
config,
...
}: let
inherit
(lib)
mkEnableOption
mkOption
types
mkIf
getExe
;
cfg = config.services.ifstate;
format = pkgs.formats.json {};
in {
options.services.ifstate = {
enable =
mkEnableOption "Enable ifstate service";
package = mkOption {
type = types.package;
default = pkgs.ifstate;
description = ''
'';
};
settings = mkOption {
type = format.type;
default = {};
description = ''
'';
};
};
config = mkIf cfg.enable {
systemd.services.ifstate = {
description = "ifstate service";
wantedBy = ["network-online.target"];
after = ["network.target"];
restartIfChanged = true;
serviceConfig = {
Type = "oneshot";
ExecStart = "${getExe cfg.package} -c ${format.generate "ifstate.json" cfg.settings} apply";
ExecReload = "${getExe cfg.package} -c ${format.generate "ifstate.json" cfg.settings} apply";
RemainAfterExit = true;
};
};
};
}