nixos/locate: remove bash wrapper from systemd (#539609)

This commit is contained in:
Sandro
2026-07-12 15:13:50 +00:00
committed by GitHub
+26 -17
View File
@@ -1,6 +1,7 @@
{
config,
lib,
utils,
pkgs,
...
}:
@@ -59,7 +60,7 @@ in
};
output = lib.mkOption {
type = lib.types.path;
type = lib.types.externalPath;
default = "/var/cache/locatedb";
description = ''
The database file to build.
@@ -249,27 +250,35 @@ in
systemd.services.update-locatedb = {
description = "Update Locate Database";
# mlocate's updatedb takes flags via a configuration file or
# on the command line, but not by environment variable.
script =
let
toFlags =
x: lib.optional (cfg.${x} != [ ]) "--${lib.toLower x} '${lib.concatStringsSep " " cfg.${x}}'";
args = lib.concatLists (
map toFlags [
serviceConfig = {
# mlocate's updatedb takes flags via a configuration file or
# on the command line, but not by environment variable.
ExecStart =
let
toFlags =
x:
lib.optionals (cfg.${x} != [ ]) [
"--${lib.toLower x}"
(lib.concatStringsSep " " cfg.${x})
];
args = lib.concatMap toFlags [
"pruneFS"
"pruneNames"
"prunePaths"
];
in
utils.escapeSystemdExecArgs (
[
(lib.getExe' cfg.package "updatedb")
"--output"
cfg.output
"--prune-bind-mounts"
(lib.boolToYesNo cfg.pruneBindMounts)
]
++ args
++ cfg.extraFlags
);
in
''
exec ${cfg.package}/bin/updatedb \
--output ${toString cfg.output} ${lib.concatStringsSep " " args} \
--prune-bind-mounts ${lib.boolToYesNo cfg.pruneBindMounts} \
${lib.concatStringsSep " " cfg.extraFlags}
'';
serviceConfig = {
CapabilityBoundingSet = "CAP_DAC_READ_SEARCH CAP_CHOWN";
Nice = 19;
IOSchedulingClass = "idle";