{ flake, config, ... }: let inherit (flake.config.people) user0 user1 ; inherit (flake.config.machines.devices) desktop server synology ; inherit (flake.config.services.instances) samba ; synologySecrets = config.sops.secrets."network/synology".path; serverSecrets = config.sops.secrets."network/server".path; in { fileSystems = let synologyDrives = [ "folder0" "folder1" "folder2" ]; storageDrives = [ "storage0" "storage1" ]; sambaDrives = [ "samba0" ]; synologyMounts = synologyDrive: { name = "${synology.${synologyDrive}.mount}"; value = { device = synology.${synologyDrive}.device; fsType = "cifs"; options = synology.${synologyDrive}.options ++ [ "credentials=${synologySecrets}" ]; }; }; storageMounts = storageDrive: { name = "${desktop.${storageDrive}.mount}"; value = { device = desktop.${storageDrive}.device; fsType = "ext4"; options = desktop.${storageDrive}.options; }; }; sambaMounts = sambaDrive: { name = "${server.${sambaDrive}.mount}/${samba.paths.path1}"; value = { device = "${server.${sambaDrive}.device}/${samba.paths.path1}"; fsType = "cifs"; options = server.${sambaDrive}.options ++ [ "credentials=${serverSecrets}" ]; }; }; in { "/" = { device = "/dev/disk/by-uuid/abf85775-d233-4303-ad03-652137d0fa6f"; fsType = "ext4"; }; "/boot" = { device = "/dev/disk/by-uuid/73E2-4DC1"; fsType = "vfat"; options = desktop.boot.options; }; } // (builtins.listToAttrs (map synologyMounts synologyDrives)) // (builtins.listToAttrs (map storageMounts storageDrives)) // (builtins.listToAttrs (map sambaMounts sambaDrives)); swapDevices = [ { device = "/dev/disk/by-uuid/1a8c0107-315e-427a-bc82-9e73dc3bf8f3"; } ]; systemd.tmpfiles.rules = [ "Z ${config.home-manager.users.${user0}.home.homeDirectory} 0755 ${user0} users -" "Z ${config.home-manager.users.${user1}.home.homeDirectory} 0755 ${user1} users -" "Z ${desktop.storage0.mount} 0755 ${user0} users -" "Z ${desktop.storage1.mount} 0755 ${user0} users -" ]; services.udisks2.enable = true; }