3
0
Fork 0
forked from mirrors/nixpkgs

Extract "locate" job from the "cron" job.

svn path=/nixos/trunk/; revision=13236
This commit is contained in:
Nicolas Pierron 2008-11-09 16:44:53 +00:00
parent 866987a60e
commit 2ed34fae67
3 changed files with 62 additions and 34 deletions

View file

@ -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)
];
}

View file

@ -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

View 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;
};
};
}