2006-12-16 19:24:49 +01:00
|
|
|
{config, pkgs, nix, splashThemes}:
|
2006-12-11 16:32:10 +01:00
|
|
|
|
|
|
|
let
|
|
|
|
|
|
|
|
makeJob = import ../upstart-jobs/make-job.nix {
|
|
|
|
inherit (pkgs) runCommand;
|
|
|
|
};
|
|
|
|
|
2006-12-16 19:24:49 +01:00
|
|
|
optional = option: service:
|
2006-12-18 16:16:20 +01:00
|
|
|
if config.get option then [(makeJob service)] else [];
|
2006-12-16 19:24:49 +01:00
|
|
|
|
2006-12-11 16:32:10 +01:00
|
|
|
in
|
|
|
|
|
|
|
|
import ../upstart-jobs/gather.nix {
|
|
|
|
inherit (pkgs) runCommand;
|
|
|
|
|
|
|
|
jobs = map makeJob [
|
|
|
|
# Syslogd.
|
|
|
|
(import ../upstart-jobs/syslogd.nix {
|
|
|
|
inherit (pkgs) sysklogd;
|
|
|
|
})
|
|
|
|
|
2006-12-13 13:17:38 +01:00
|
|
|
# The udev daemon creates devices nodes and runs programs when
|
|
|
|
# hardware events occur.
|
|
|
|
(import ../upstart-jobs/udev.nix {
|
2006-12-13 15:24:33 +01:00
|
|
|
inherit (pkgs) writeText cleanSource udev procps;
|
2006-12-13 13:17:38 +01:00
|
|
|
})
|
|
|
|
|
2006-12-11 16:32:10 +01:00
|
|
|
# Hardware scan; loads modules for PCI devices.
|
|
|
|
(import ../upstart-jobs/hardware-scan.nix {
|
|
|
|
inherit (pkgs) kernel module_init_tools;
|
|
|
|
})
|
|
|
|
|
2006-12-21 15:22:40 +01:00
|
|
|
# Mount file systems.
|
|
|
|
(import ../upstart-jobs/filesystems.nix {
|
|
|
|
inherit (pkgs) utillinux;
|
|
|
|
fileSystems = config.get ["fileSystems"];
|
|
|
|
})
|
|
|
|
|
2006-12-21 02:07:23 +01:00
|
|
|
# Swapping.
|
|
|
|
(import ../upstart-jobs/swap.nix {
|
|
|
|
inherit (pkgs) utillinux;
|
|
|
|
swapDevices = config.get ["swapDevices"];
|
|
|
|
})
|
|
|
|
|
2006-12-11 16:32:10 +01:00
|
|
|
# Network interfaces.
|
|
|
|
(import ../upstart-jobs/network-interfaces.nix {
|
|
|
|
inherit (pkgs) nettools kernel module_init_tools;
|
|
|
|
})
|
|
|
|
|
|
|
|
# DHCP client.
|
|
|
|
(import ../upstart-jobs/dhclient.nix {
|
|
|
|
inherit (pkgs) nettools;
|
|
|
|
dhcp = pkgs.dhcpWrapper;
|
|
|
|
})
|
|
|
|
|
|
|
|
# Nix daemon - required for multi-user Nix.
|
|
|
|
(import ../upstart-jobs/nix-daemon.nix {
|
|
|
|
inherit nix;
|
|
|
|
})
|
|
|
|
|
|
|
|
# Transparent TTY backgrounds.
|
|
|
|
(import ../upstart-jobs/tty-backgrounds.nix {
|
|
|
|
inherit (pkgs) stdenv splashutils;
|
|
|
|
backgrounds = splashThemes.ttyBackgrounds;
|
|
|
|
})
|
|
|
|
|
|
|
|
# Handles the maintenance/stalled event (single-user shell).
|
|
|
|
(import ../upstart-jobs/maintenance-shell.nix {
|
|
|
|
inherit (pkgs) bash;
|
|
|
|
})
|
|
|
|
|
|
|
|
# Ctrl-alt-delete action.
|
|
|
|
(import ../upstart-jobs/ctrl-alt-delete.nix)
|
|
|
|
|
|
|
|
]
|
|
|
|
|
2006-12-16 19:24:49 +01:00
|
|
|
# SSH daemon.
|
|
|
|
++ optional ["services" "sshd" "enable"]
|
|
|
|
(import ../upstart-jobs/sshd.nix {
|
2006-12-18 16:48:29 +01:00
|
|
|
inherit (pkgs) openssh glibc pwdutils;
|
2006-12-16 19:24:49 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
# X server.
|
|
|
|
++ optional ["services" "xserver" "enable"]
|
|
|
|
(import ../upstart-jobs/xserver.nix {
|
|
|
|
inherit (pkgs) substituteAll;
|
|
|
|
inherit (pkgs.xorg) xorgserver xf86inputkeyboard xf86inputmouse xf86videovesa;
|
|
|
|
})
|
|
|
|
|
2006-12-18 20:20:03 +01:00
|
|
|
# Apache httpd.
|
|
|
|
++ optional ["services" "httpd" "enable"]
|
|
|
|
(import ../upstart-jobs/httpd.nix {
|
2006-12-18 20:46:48 +01:00
|
|
|
inherit config pkgs;
|
2006-12-18 20:20:03 +01:00
|
|
|
inherit (pkgs) glibc pwdutils;
|
|
|
|
})
|
|
|
|
|
2006-12-11 16:32:10 +01:00
|
|
|
# Handles the reboot/halt events.
|
|
|
|
++ (map
|
|
|
|
(event: makeJob (import ../upstart-jobs/halt.nix {
|
|
|
|
inherit (pkgs) bash utillinux;
|
|
|
|
inherit event;
|
|
|
|
}))
|
|
|
|
["reboot" "halt" "system-halt" "power-off"]
|
|
|
|
)
|
|
|
|
|
|
|
|
# The terminals on ttyX.
|
|
|
|
++ (map
|
|
|
|
(ttyNumber: makeJob (import ../upstart-jobs/mingetty.nix {
|
|
|
|
inherit (pkgs) mingetty pam_login;
|
|
|
|
inherit ttyNumber;
|
|
|
|
}))
|
2006-12-18 16:41:18 +01:00
|
|
|
(config.get ["services" "mingetty" "ttys"])
|
2006-12-11 16:32:10 +01:00
|
|
|
)
|
|
|
|
|
2006-12-18 18:41:46 +01:00
|
|
|
# User-defined events.
|
|
|
|
++ (map makeJob (config.get ["services" "extraJobs"]))
|
|
|
|
|
2006-12-18 20:46:48 +01:00
|
|
|
# For the built-in logd job.
|
2006-12-11 16:32:10 +01:00
|
|
|
++ [pkgs.upstart];
|
2006-12-18 20:46:48 +01:00
|
|
|
|
2006-12-11 16:32:10 +01:00
|
|
|
}
|