* Periodically update the locate database from cron when
config.services.locate.enable is set. svn path=/nixos/trunk/; revision=10448
This commit is contained in:
parent
9f62e1a6a5
commit
0d50031a0a
|
@ -8,6 +8,7 @@ export FONTCONFIG_FILE=/etc/fonts/fonts.conf
|
||||||
export LANG=@defaultLocale@
|
export LANG=@defaultLocale@
|
||||||
export EDITOR=nano
|
export EDITOR=nano
|
||||||
export INFOPATH=/var/run/current-system/sw/info:/var/run/current-system/sw/share/info
|
export INFOPATH=/var/run/current-system/sw/info:/var/run/current-system/sw/share/info
|
||||||
|
export LOCATE_PATH=/var/cache/locatedb
|
||||||
|
|
||||||
|
|
||||||
# A nice prompt.
|
# A nice prompt.
|
||||||
|
|
|
@ -546,6 +546,29 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
locate = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = ''
|
||||||
|
If enabled, NixOS will periodically update the database of
|
||||||
|
files used by the <command>locate</command> command.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
period = mkOption {
|
||||||
|
default = "15 02 * * *";
|
||||||
|
description = ''
|
||||||
|
This option defines (in the format used by cron) when the
|
||||||
|
locate database is updated.
|
||||||
|
The default is to update at 02:15 (at night) every day.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
ttyBackgrounds = {
|
ttyBackgrounds = {
|
||||||
|
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
|
|
|
@ -2,11 +2,24 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
systemCronJobs = config.services.cron.systemCronJobs;
|
# !!! This should be defined somewhere else.
|
||||||
|
locatedb = "/var/cache/locatedb";
|
||||||
|
|
||||||
|
updatedbCmd =
|
||||||
|
"${config.services.locate.period} root " +
|
||||||
|
"mkdir -m 0755 -p $(dirname ${locatedb}) && " +
|
||||||
|
"nice -n 19 ${pkgs.utillinux}/bin/ionice -c 3 " +
|
||||||
|
"updatedb --localuser=nobody --output=${locatedb} > /var/log/updatedb 2>&1";
|
||||||
|
|
||||||
|
|
||||||
|
# Put all the system cronjobs together.
|
||||||
|
systemCronJobs =
|
||||||
|
config.services.cron.systemCronJobs ++
|
||||||
|
pkgs.lib.optional config.services.locate.enable updatedbCmd;
|
||||||
|
|
||||||
systemCronJobsFile = pkgs.writeText "system-crontab" ''
|
systemCronJobsFile = pkgs.writeText "system-crontab" ''
|
||||||
SHELL=${pkgs.bash}/bin/sh
|
SHELL=${pkgs.bash}/bin/sh
|
||||||
PATH=${pkgs.coreutils}/bin
|
PATH=${pkgs.coreutils}/bin:${pkgs.findutils}/bin:${pkgs.gnused}/bin:${pkgs.su}/bin
|
||||||
MAILTO=
|
MAILTO=
|
||||||
${pkgs.lib.concatStrings (map (job: job + "\n") systemCronJobs)}
|
${pkgs.lib.concatStrings (map (job: job + "\n") systemCronJobs)}
|
||||||
'';
|
'';
|
||||||
|
|
Loading…
Reference in a new issue