systemd: paths and slices are supported for user units too
This commit is contained in:
parent
eb28340bac
commit
5cb11abc9e
@ -659,16 +659,22 @@ in
|
|||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.user.paths = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = with types; attrsOf (submodule [ { options = pathOptions; } unitConfig ]);
|
||||||
|
description = "Definition of systemd per-user path units.";
|
||||||
|
};
|
||||||
|
|
||||||
systemd.user.services = mkOption {
|
systemd.user.services = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
type = with types; attrsOf (submodule [ { options = serviceOptions; } unitConfig serviceConfig ] );
|
type = with types; attrsOf (submodule [ { options = serviceOptions; } unitConfig serviceConfig ] );
|
||||||
description = "Definition of systemd per-user service units.";
|
description = "Definition of systemd per-user service units.";
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.timers = mkOption {
|
systemd.user.slices = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
type = with types; attrsOf (submodule [ { options = timerOptions; } unitConfig ] );
|
type = with types; attrsOf (submodule [ { options = sliceOptions; } unitConfig ] );
|
||||||
description = "Definition of systemd per-user timer units.";
|
description = "Definition of systemd per-user slice units.";
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.sockets = mkOption {
|
systemd.user.sockets = mkOption {
|
||||||
@ -683,6 +689,12 @@ in
|
|||||||
description = "Definition of systemd per-user target units.";
|
description = "Definition of systemd per-user target units.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.user.timers = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = with types; attrsOf (submodule [ { options = timerOptions; } unitConfig ] );
|
||||||
|
description = "Definition of systemd per-user timer units.";
|
||||||
|
};
|
||||||
|
|
||||||
systemd.additionalUpstreamSystemUnits = mkOption {
|
systemd.additionalUpstreamSystemUnits = mkOption {
|
||||||
default = [ ];
|
default = [ ];
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
@ -799,12 +811,12 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
systemd.units =
|
systemd.units =
|
||||||
mapAttrs' (n: v: nameValuePair "${n}.target" (targetToUnit n v)) cfg.targets
|
mapAttrs' (n: v: nameValuePair "${n}.path" (pathToUnit n v)) cfg.paths
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.services
|
// mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.services
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.sockets
|
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.timers
|
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.path" (pathToUnit n v)) cfg.paths
|
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.slice" (sliceToUnit n v)) cfg.slices
|
// mapAttrs' (n: v: nameValuePair "${n}.slice" (sliceToUnit n v)) cfg.slices
|
||||||
|
// mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.sockets
|
||||||
|
// mapAttrs' (n: v: nameValuePair "${n}.target" (targetToUnit n v)) cfg.targets
|
||||||
|
// mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.timers
|
||||||
// listToAttrs (map
|
// listToAttrs (map
|
||||||
(v: let n = escapeSystemdPath v.where;
|
(v: let n = escapeSystemdPath v.where;
|
||||||
in nameValuePair "${n}.mount" (mountToUnit n v)) cfg.mounts)
|
in nameValuePair "${n}.mount" (mountToUnit n v)) cfg.mounts)
|
||||||
@ -813,7 +825,9 @@ in
|
|||||||
in nameValuePair "${n}.automount" (automountToUnit n v)) cfg.automounts);
|
in nameValuePair "${n}.automount" (automountToUnit n v)) cfg.automounts);
|
||||||
|
|
||||||
systemd.user.units =
|
systemd.user.units =
|
||||||
mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.user.services
|
mapAttrs' (n: v: nameValuePair "${n}.path" (pathToUnit n v)) cfg.user.paths
|
||||||
|
// mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.user.services
|
||||||
|
// mapAttrs' (n: v: nameValuePair "${n}.slice" (sliceToUnit n v)) cfg.user.slices
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.user.sockets
|
// mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.user.sockets
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.target" (targetToUnit n v)) cfg.user.targets
|
// mapAttrs' (n: v: nameValuePair "${n}.target" (targetToUnit n v)) cfg.user.targets
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.user.timers;
|
// mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.user.timers;
|
||||||
|
Loading…
Reference in New Issue
Block a user