anchor.diff:          description = ''
             Password. WARNING: The password becomes world readable in the Nix store.
           '';
  +      };
  +
  +      interval = mkOption {
  +        default = 600;
  +        type = int;
  +        description = "The interval at which to run the check and update.";
         };
   
         configFile = mkOption {
  
positive.code:       restartTriggers = [ config.environment.etc."ddclient.conf".source ];
  
        serviceConfig = {
          # Uncomment this if too many problems occur:
          # Type = "forking";
          User = ddclientUser;
          Group = "nogroup"; #TODO get this to work
          PermissionsStartOnly = "true";
          PIDFile = ddclientPIDFile;
          ExecStartPre = ''
            ${pkgs.stdenv.shell} -c "${pkgs.coreutils}/bin/mkdir -m 0755 -p ${stateDir} && ${pkgs.coreutils}/bin/chown ${ddclientUser} ${stateDir}"
          '';
          ExecStart = "${ddclient}/bin/ddclient ${ddclientFlags}";
          #ExecStartPost = "${pkgs.coreutils}/bin/rm -r ${stateDir}"; # Should we have this?
        };
      };
    };
  
negative.code: 
    config = mkIf config.services.ddclient.enable {
  
      users = {
        extraGroups.ddclient.gid = config.ids.gids.ddclient;
  
        extraUsers.ddclient = {
          uid = config.ids.uids.ddclient;
          description = "ddclient daemon user";
          group = "ddclient";
          home = cfg.homeDir;
          createHome = true;
        };
      };
  
      environment.etc."ddclient.conf" = {
        enable = cfg.configFile == "/etc/ddclient.conf";
        uid = config.ids.uids.ddclient;
        gid = config.ids.gids.ddclient;
        mode = "0600";
        text = configText;
      };
  
      systemd.services.ddclient = {
  