nixos/programs/{gnome-session,sessiond}: improve code

This commit is contained in:
Gabriel Arazas 2024-03-07 15:54:04 +08:00
parent b9f5a68061
commit 485ac7a4c4
No known key found for this signature in database
GPG Key ID: ADE0C41DAB221FCC
2 changed files with 10 additions and 12 deletions

View File

@ -115,15 +115,15 @@ let
)
cfg.sessions;
sessionSystemdUnits = lib.mapAttrsToList
sessionSystemdUnits = lib.concatMapAttrs
(name: session:
let
inherit (utils.systemdUtils.lib)
pathToUnit serviceToUnit targetToUnit timerToUnit socketToUnit;
componentsUnits =
lib.foldlAttrs
(acc: name: component:
acc // {
lib.concatMapAttrs
(name: component:
{
"${component.id}.service" = serviceToUnit component.id component.serviceUnit;
"${component.id}.target" = targetToUnit component.id component.targetUnit;
} // lib.optionalAttrs (component.socketUnit != null) {
@ -133,7 +133,6 @@ let
} // lib.optionalAttrs (component.pathUnit != null) {
"${component.id}.path" = pathToUnit component.id component.pathUnit;
})
{ }
session.components;
in
componentsUnits // {
@ -312,6 +311,6 @@ in
# is more elegant and surprisingly trivial) but this requires
# reimplementing parts of nixpkgs systemd-lib and we're lazy bastards so
# no.
systemd.user.units = lib.mkMerge sessionSystemdUnits;
systemd.user.units = sessionSystemdUnits;
};
}

View File

@ -39,16 +39,16 @@ let
)
cfg.sessions;
sessionSystemdUnits = lib.mapAttrsToList
sessionSystemdUnits = lib.concatMapAttrs
(name: session:
let
inherit (utils.systemdUtils.lib)
pathToUnit serviceToUnit targetToUnit timerToUnit socketToUnit;
sessionComponents =
lib.foldlAttrs
(acc: name: component:
acc // {
lib.concatMapAttrs
(name: component:
{
"${component.id}.service" = serviceToUnit component.id component.serviceUnit;
"${component.id}.target" = targetToUnit component.id component.targetUnit;
} // lib.optionalAttrs (component.socketUnit != null) {
@ -58,7 +58,6 @@ let
} // lib.optionalAttrs (component.pathUnit != null) {
"${component.id}.path" = pathToUnit component.id component.pathUnit;
})
{ }
session.components;
in
sessionComponents // {
@ -193,7 +192,7 @@ in
# Import those systemd units from sessiond as well.
systemd.packages = [ cfg.package ];
systemd.user.units = lib.mkMerge sessionSystemdUnits;
systemd.user.units = sessionSystemdUnits;
# We're disabling the upstream sessiond service since we have our own set
# of sessiond sessions here.