summary refs log tree commit diff
path: root/nixos/modules
diff options
context:
space:
mode:
authorDoron Behar <doron.behar@gmail.com>2021-09-28 16:03:21 +0000
committerGitHub <noreply@github.com>2021-09-28 16:03:21 +0000
commit6cd8d672518071d03e52c13693102ef6597c1de4 (patch)
tree1b220b35bbde856593ddc40d4bfa9974535c9978 /nixos/modules
parentc173dede1e61253f182079607e138f89bd048da0 (diff)
parentfc62de20436897f38866b5f287c348628fd182a7 (diff)
downloadnixpkgs-6cd8d672518071d03e52c13693102ef6597c1de4.tar
nixpkgs-6cd8d672518071d03e52c13693102ef6597c1de4.tar.gz
nixpkgs-6cd8d672518071d03e52c13693102ef6597c1de4.tar.bz2
nixpkgs-6cd8d672518071d03e52c13693102ef6597c1de4.tar.lz
nixpkgs-6cd8d672518071d03e52c13693102ef6597c1de4.tar.xz
nixpkgs-6cd8d672518071d03e52c13693102ef6597c1de4.tar.zst
nixpkgs-6cd8d672518071d03e52c13693102ef6597c1de4.zip
Merge pull request #117890 from milahu/patch-3
locate.nix: write /etc/updatedb.conf
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/misc/locate.nix17
1 files changed, 16 insertions, 1 deletions
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 1d2bc8c7281..5d2f9a21bc5 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -43,6 +43,9 @@ in {
         The format is described in
         <citerefentry><refentrytitle>systemd.time</refentrytitle>
         <manvolnum>7</manvolnum></citerefentry>.
+
+        To disable automatic updates, set to <literal>"never"</literal>
+        and run <command>updatedb</command> manually.
       '';
     };
 
@@ -192,6 +195,18 @@ in {
       { LOCATE_PATH = cfg.output;
       };
 
+    environment.etc = {
+      # write /etc/updatedb.conf for manual calls to `updatedb`
+      "updatedb.conf" = {
+        text = ''
+          PRUNEFS="${lib.concatStringsSep " " cfg.pruneFS}"
+          PRUNENAMES="${lib.concatStringsSep " " cfg.pruneNames}"
+          PRUNEPATHS="${lib.concatStringsSep " " cfg.prunePaths}"
+          PRUNE_BIND_MOUNTSFR="${lib.boolToString cfg.pruneBindMounts}"
+        '';
+      };
+    };
+
     warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support the services.locate.localuser option; updatedb will run as root. (Silence with services.locate.localuser = null.)"
             ++ optional (isFindutils && cfg.pruneNames != []) "findutils locate does not support pruning by directory component"
             ++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts";
@@ -238,7 +253,7 @@ in {
         serviceConfig.ReadWritePaths = dirOf cfg.output;
       };
 
-    systemd.timers.update-locatedb =
+    systemd.timers.update-locatedb = mkIf (cfg.interval != "never")
       { description = "Update timer for locate database";
         partOf      = [ "update-locatedb.service" ];
         wantedBy    = [ "timers.target" ];