about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorJoachim F <joachifm@users.noreply.github.com>2017-10-20 13:55:09 +0000
committerGitHub <noreply@github.com>2017-10-20 13:55:09 +0000
commit5f1d6bc5c7a1c627c8c3a27e34b0c44ea7393568 (patch)
tree779c377d495a8de748fba3ea519ca82a8a76f3b6 /nixos
parentdd60a064a9b75807fc32713bd41560ae75f6b7a3 (diff)
parent281bf1ddeda5705cc23ee0cf0bf95cbeb84832a0 (diff)
downloadnixlib-5f1d6bc5c7a1c627c8c3a27e34b0c44ea7393568.tar
nixlib-5f1d6bc5c7a1c627c8c3a27e34b0c44ea7393568.tar.gz
nixlib-5f1d6bc5c7a1c627c8c3a27e34b0c44ea7393568.tar.bz2
nixlib-5f1d6bc5c7a1c627c8c3a27e34b0c44ea7393568.tar.lz
nixlib-5f1d6bc5c7a1c627c8c3a27e34b0c44ea7393568.tar.xz
nixlib-5f1d6bc5c7a1c627c8c3a27e34b0c44ea7393568.tar.zst
nixlib-5f1d6bc5c7a1c627c8c3a27e34b0c44ea7393568.zip
Merge pull request #30563 from michaelpj/imp/tzupdate
tzupdate: init at 1.2.0 (+ service)
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/misc/tzupdate.nix45
2 files changed, 46 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index e8fecafb2c83..c899ccf3358e 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -344,6 +344,7 @@
   ./services/misc/svnserve.nix
   ./services/misc/synergy.nix
   ./services/misc/taskserver
+  ./services/misc/tzupdate.nix
   ./services/misc/uhub.nix
   ./services/misc/zookeeper.nix
   ./services/monitoring/apcupsd.nix
diff --git a/nixos/modules/services/misc/tzupdate.nix b/nixos/modules/services/misc/tzupdate.nix
new file mode 100644
index 000000000000..570982ced29a
--- /dev/null
+++ b/nixos/modules/services/misc/tzupdate.nix
@@ -0,0 +1,45 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.tzupdate;
+in {
+  options.services.tzupdate = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enable the tzupdate timezone updating service. This provides
+        a one-shot service which can be activated with systemctl to 
+        update the timezone.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    # We need to have imperative time zone management for this to work.
+    # This will give users an error if they have set an explicit time
+    # zone, which is better than silently overriding it.
+    time.timeZone = null; 
+
+    # We provide a one-shot service which can be manually run. We could
+    # provide a service that runs on startup, but it's tricky to get
+    # a service to run after you have *internet* access.
+    systemd.services.tzupdate = {
+      description = "tzupdate timezone update service";
+      wants = [ "network-online.target" ];
+      after = [ "network-online.target" ];
+
+      serviceConfig = {
+        Type = "oneshot";
+        # We could link directly into pkgs.tzdata, but at least timedatectl seems
+        # to expect the symlink to point directly to a file in etc.
+        # Setting the "debian timezone file" to point at /dev/null stops it doing anything.
+        ExecStart = "${pkgs.tzupdate}/bin/tzupdate -z /etc/zoneinfo -d /dev/null";
+      };
+    };
+  };
+
+  meta.maintainers = [ maintainers.michaelpj ];
+}