···
cfg = config.services.locate;
+
isMLocate = hasPrefix "mlocate" cfg.package.name;
+
isPLocate = hasPrefix "plocate" cfg.package.name;
isMorPLocate = isMLocate || isPLocate;
+
isFindutils = hasPrefix "findutils" cfg.package.name;
(mkRenamedOptionModule [ "services" "locate" "period" ] [ "services" "locate" "interval" ])
+
(mkRenamedOptionModule [ "services" "locate" "locate" ] [ "services" "locate" "package" ])
(mkRemovedOptionModule [ "services" "locate" "includeStore" ] "Use services.locate.prunePaths")
···
default = pkgs.findutils.locate;
+
defaultText = literalExpression "pkgs.findutils.locate";
example = literalExpression "pkgs.mlocate";
description = lib.mdDoc ''
The locate implementation to use
···
mlocate = mkIf isMLocate {
+
source = "${cfg.package}/bin/locate";
plocate = mkIf isPLocate {
+
source = "${cfg.package}/bin/plocate";
···
plocate = mkIf isPLocate (mkMerge [ common plocate ]);
+
environment.systemPackages = [ cfg.package ];
environment.variables.LOCATE_PATH = cfg.output;
···
args = concatLists (map toFlags [ "pruneFS" "pruneNames" "prunePaths" ]);
+
exec ${cfg.package}/bin/updatedb \
--output ${toString cfg.output} ${concatStringsSep " " args} \
--prune-bind-mounts ${if cfg.pruneBindMounts then "yes" else "no"} \
${concatStringsSep " " cfg.extraFlags}
+
exec ${cfg.package}/bin/updatedb \
${optionalString (cfg.localuser != null && !isMorPLocate) "--localuser=${cfg.localuser}"} \
--output=${toString cfg.output} ${concatStringsSep " " cfg.extraFlags}