nixpkgs/upstart-jobs/lib/default.nix

37 lines
645 B
Nix
Raw Normal View History

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