···
+
hooksModule = types.submodule {
+
type = types.attrsOf types.path;
+
description = lib.mdDoc ''
+
Hooks that will be placed under /var/lib/libvirt/hooks/daemon.d/
+
and called for daemon start/shutdown/SIGHUP events.
+
Please see https://libvirt.org/hooks.html for documentation.
+
type = types.attrsOf types.path;
+
description = lib.mdDoc ''
+
Hooks that will be placed under /var/lib/libvirt/hooks/qemu.d/
+
and called for qemu domains begin/end/migrate events.
+
Please see https://libvirt.org/hooks.html for documentation.
+
type = types.attrsOf types.path;
+
description = lib.mdDoc ''
+
Hooks that will be placed under /var/lib/libvirt/hooks/lxc.d/
+
and called for lxc domains begin/end events.
+
Please see https://libvirt.org/hooks.html for documentation.
+
type = types.attrsOf types.path;
+
description = lib.mdDoc ''
+
Hooks that will be placed under /var/lib/libvirt/hooks/libxl.d/
+
and called for libxl-handled xen domains begin/end events.
+
Please see https://libvirt.org/hooks.html for documentation.
+
type = types.attrsOf types.path;
+
description = lib.mdDoc ''
+
Hooks that will be placed under /var/lib/libvirt/hooks/lxc.d/
+
and called for networks begin/end events.
+
Please see https://libvirt.org/hooks.html for documentation.
···
+
description = lib.mdDoc ''
···
ln -s --force ${ovmfpackage}/FV/AAVMF_VARS.fd /run/${dirName}/nix-ovmf/
ln -s --force ${ovmfpackage}/FV/OVMF_VARS.fd /run/${dirName}/nix-ovmf/
+
# Symlink hooks to /var/lib/libvirt
+
${concatStringsSep "\n" (map (driver:
+
mkdir -p /var/lib/${dirName}/hooks/${driver}.d
+
rm -rf /var/lib/${dirName}/hooks/${driver}.d/*
+
${concatStringsSep "\n" (mapAttrsToList (name: value:
+
"ln -s --force ${value} /var/lib/${dirName}/hooks/${driver}.d/${name}") cfg.hooks.${driver})}
+
'') (attrNames cfg.hooks))}