python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / networking / htpdate.nix
blob8b9bb2888dacb2c00d72c9897f7ba301c8a1b645
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   inherit (pkgs) htpdate;
8   cfg = config.services.htpdate;
9 in
13   ###### interface
15   options = {
17     services.htpdate = {
19       enable = mkOption {
20         type = types.bool;
21         default = false;
22         description = lib.mdDoc ''
23           Enable htpdate daemon.
24         '';
25       };
27       extraOptions = mkOption {
28         type = types.str;
29         default = "";
30         description = lib.mdDoc ''
31           Additional command line arguments to pass to htpdate.
32         '';
33       };
35       servers = mkOption {
36         type = types.listOf types.str;
37         default = [ "www.google.com" ];
38         description = lib.mdDoc ''
39           HTTP servers to use for time synchronization.
40         '';
41       };
43       proxy = mkOption {
44         type = types.str;
45         default = "";
46         example = "127.0.0.1:8118";
47         description = lib.mdDoc ''
48           HTTP proxy used for requests.
49         '';
50       };
52     };
54   };
56   ###### implementation
58   config = mkIf cfg.enable {
60     systemd.services.htpdate = {
61       description = "htpdate daemon";
62       wantedBy = [ "multi-user.target" ];
63       serviceConfig = {
64         Type = "forking";
65         PIDFile = "/run/htpdate.pid";
66         ExecStart = concatStringsSep " " [
67           "${htpdate}/bin/htpdate"
68           "-D -u nobody"
69           "-a -s"
70           "-l"
71           "${optionalString (cfg.proxy != "") "-P ${cfg.proxy}"}"
72           "${cfg.extraOptions}"
73           "${concatStringsSep " " cfg.servers}"
74         ];
75       };
76     };
78   };