Create groups for encrypted filesystems

This commit is contained in:
2021-10-18 07:19:13 -07:00
parent cbf87fe8cf
commit eef580d596
2 changed files with 32 additions and 4 deletions
+17 -3
View File
@@ -7,17 +7,31 @@ let
optionalOrDefault = tst: str: default: if tst then str else default;
filesystemsToMountpointLists = mapAttrsToList
(fs: fsOpts: fsOpts.mountpoints);
in {
config = {
systemd = {
users.groups = let
mountpointToGroups = mp: mpOpts:
optional (mpOpts.group != null)
(nameValuePair mpOpts.group {
members = mpOpts.users;
});
mountpointListsToGroups = mapConcat
(mps: mapAttrsToList mountpointToGroups mps);
in listToAttrs
(mountpointListsToGroups
(filesystemsToMountpointLists host-filesystems));
systemd = {
# Ensure the mountpoints exist
tmpfiles = let
tmpfiles.rules = let
mountpointToPath = mp: mpOpts:
"d '${mp}' - root ${optionalOrDefault mpOpts.group "-"} - -";
filesystemsToMountpointLists = mapAttrsToList
(fs: fsOpts: fsOpts.mountpoints);
mountpointListsToPaths = mapConcat
mountpointListsToPaths = concatMap
(mps: mapAttrsToList mountpointToPath mps);
in mountpointListsToPaths (filesystemsToMountpointLists host-filesystems);