vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / networking / htpdate.nix
blobfa422854872c60ee7d430358f62ec5d98dc44362
1 { config, lib, pkgs, ... }:
2 let
3   inherit (pkgs) htpdate;
5   cfg = config.services.htpdate;
6 in
10   ###### interface
12   options = {
14     services.htpdate = {
16       enable = lib.mkOption {
17         type = lib.types.bool;
18         default = false;
19         description = ''
20           Enable htpdate daemon.
21         '';
22       };
24       extraOptions = lib.mkOption {
25         type = lib.types.str;
26         default = "";
27         description = ''
28           Additional command line arguments to pass to htpdate.
29         '';
30       };
32       servers = lib.mkOption {
33         type = lib.types.listOf lib.types.str;
34         default = [ "www.google.com" ];
35         description = ''
36           HTTP servers to use for time synchronization.
37         '';
38       };
40       proxy = lib.mkOption {
41         type = lib.types.str;
42         default = "";
43         example = "127.0.0.1:8118";
44         description = ''
45           HTTP proxy used for requests.
46         '';
47       };
49     };
51   };
53   ###### implementation
55   config = lib.mkIf cfg.enable {
57     systemd.services.htpdate = {
58       description = "htpdate daemon";
59       wantedBy = [ "multi-user.target" ];
60       serviceConfig = {
61         Type = "forking";
62         PIDFile = "/run/htpdate.pid";
63         ExecStart = lib.concatStringsSep " " [
64           "${htpdate}/bin/htpdate"
65           "-D -u nobody"
66           "-a -s"
67           "-l"
68           "${lib.optionalString (cfg.proxy != "") "-P ${cfg.proxy}"}"
69           "${cfg.extraOptions}"
70           "${lib.concatStringsSep " " cfg.servers}"
71         ];
72       };
73     };
75   };