|
|
|
@ -7,7 +7,7 @@ let |
|
|
|
|
|
|
|
|
|
stateDir = "/var/spool/ddclient"; |
|
|
|
|
ddclientUser = "ddclient"; |
|
|
|
|
ddclientFlags = "-foreground -verbose -noquiet -file /etc/ddclient.conf"; |
|
|
|
|
ddclientFlags = "-foreground -verbose -noquiet -file ${config.services.ddclient.configFile}"; |
|
|
|
|
ddclientPIDFile = "${stateDir}/ddclient.pid"; |
|
|
|
|
|
|
|
|
|
in |
|
|
|
@ -52,6 +52,17 @@ in |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
configFile = mkOption { |
|
|
|
|
default = "/etc/ddclient.conf"; |
|
|
|
|
type = path; |
|
|
|
|
description = '' |
|
|
|
|
Path to configuration file. |
|
|
|
|
When set to the default '/etc/ddclient.conf' it will be populated with the various other options in this module. When it is changed (for example: '/root/nixos/secrets/ddclient.conf') the file read directly to configure ddclient. This is a source of impurity. |
|
|
|
|
The purpose of this is to avoid placing secrets into the store. |
|
|
|
|
''; |
|
|
|
|
example = "/root/nixos/secrets/ddclient.conf"; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
protocol = mkOption { |
|
|
|
|
default = "dyndns2"; |
|
|
|
|
type = str; |
|
|
|
@ -109,9 +120,11 @@ in |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
environment.etc."ddclient.conf" = { |
|
|
|
|
enable = config.services.ddclient.configFile == /etc/ddclient.conf; |
|
|
|
|
uid = config.ids.uids.ddclient; |
|
|
|
|
mode = "0600"; |
|
|
|
|
text = '' |
|
|
|
|
# This file can be used as a template for configFile or is automatically generated by Nix options. |
|
|
|
|
daemon=600 |
|
|
|
|
cache=${stateDir}/ddclient.cache |
|
|
|
|
pid=${ddclientPIDFile} |
|
|
|
|