diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 45da0df7967c..7de63c606492 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -3,12 +3,8 @@
with lib;
let
-
- locatedb = "/var/cache/locatedb";
-
-in
-
-{
+ cfg = config.services.locate;
+in {
###### interface
@@ -35,6 +31,31 @@ in
'';
};
+ extraFlags = mkOption {
+ type = types.listOf types.str;
+ default = [ ];
+ description = ''
+ Extra flags to append to updatedb.
+ '';
+ };
+
+ output = mkOption {
+ type = types.path;
+ default = /var/cache/locatedb;
+ description = ''
+ The database file to build.
+ '';
+ };
+
+ localuser = mkOption {
+ type = types.str;
+ default = "nobody";
+ description = ''
+ The user to search non-network directories as, using
+ su.
+ '';
+ };
+
};
};
@@ -48,8 +69,10 @@ in
path = [ pkgs.su ];
script =
''
- mkdir -m 0755 -p $(dirname ${locatedb})
- exec updatedb --localuser=nobody --output=${locatedb} --prunepaths='/tmp /var/tmp /media /run'
+ mkdir -m 0755 -p $(dirname ${toString cfg.output})
+ exec updatedb \
+ --localuser=${cfg.localuser} \
+ --output=${toString cfg.output} ${concatStringsSep " " cfg.extraFlags}
'';
serviceConfig.Nice = 19;
serviceConfig.IOSchedulingClass = "idle";