37 lines
645 B
Nix
37 lines
645 B
Nix
|
# This file defines functions to handle upstart-jobs.
|
||
|
{pkgs, config, ...}:
|
||
|
|
||
|
let
|
||
|
inherit (pkgs.lib) filter findSingle;
|
||
|
jobs = config.services.extraJobs;
|
||
|
|
||
|
primaryEvents = [
|
||
|
"startup"
|
||
|
"shutdown"
|
||
|
"never"
|
||
|
];
|
||
|
|
||
|
upstartJobsTools = rec {
|
||
|
exists = name:
|
||
|
let
|
||
|
found = filter
|
||
|
(j: j ? name && j.name == name)
|
||
|
(jobs ++ map (name: {inherit name;}) primaryEvents);
|
||
|
in found != [];
|
||
|
|
||
|
check = name:
|
||
|
if exists name then
|
||
|
name
|
||
|
else
|
||
|
abort "Undefined upstart job name: ${name}.";
|
||
|
};
|
||
|
in
|
||
|
|
||
|
{
|
||
|
services = {
|
||
|
tools = {
|
||
|
upstartJobs = upstartJobsTools;
|
||
|
};
|
||
|
};
|
||
|
}
|