forked from mirrors/nixpkgs
Extract "locate" job from the "cron" job.
svn path=/nixos/trunk/; revision=13236
This commit is contained in:
parent
866987a60e
commit
2ed34fae67
|
@ -644,28 +644,6 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
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 = {
|
||||
|
||||
|
@ -3050,5 +3028,6 @@ root ALL=(ALL) SETENV: ALL
|
|||
|
||||
# services
|
||||
(import ../upstart-jobs/cron.nix)
|
||||
(import ../upstart-jobs/cron/locate.nix)
|
||||
];
|
||||
}
|
||||
|
|
|
@ -34,20 +34,9 @@ in
|
|||
|
||||
###### implementation
|
||||
let
|
||||
# !!! 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;
|
||||
config.services.cron.systemCronJobs;
|
||||
|
||||
systemCronJobsFile = pkgs.writeText "system-crontab" ''
|
||||
SHELL=${pkgs.bash}/bin/sh
|
||||
|
|
60
upstart-jobs/cron/locate.nix
Normal file
60
upstart-jobs/cron/locate.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{pkgs, config}:
|
||||
|
||||
###### interface
|
||||
let
|
||||
inherit (pkgs.lib) mkOption;
|
||||
|
||||
options = {
|
||||
services = {
|
||||
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.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
in
|
||||
|
||||
###### implementation
|
||||
let
|
||||
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";
|
||||
in
|
||||
|
||||
{
|
||||
require = [
|
||||
(import ../../upstart-jobs/cron.nix) # config.services.cron
|
||||
options
|
||||
];
|
||||
|
||||
services = {
|
||||
cron = {
|
||||
systemCronJobs =
|
||||
pkgs.lib.optional
|
||||
config.services.locate.enable
|
||||
updatedbCmd;
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue