universe/lib/filesystems.nix

53 lines
1 KiB
Nix

{ lib, self }:
rec {
diskByUuid = uuid: "/dev/disk/by-uuid/${uuid}";
mkFilesystemDev = fsType: device: common: options: {
inherit device fsType;
options = common ++ options;
};
neededForBoot = self.lazy (fs: fs // { neededForBoot = true; });
mkFilesystemDev' =
f: d: c: o:
neededForBoot (mkFilesystemDev f d c o);
mkFilesystem = fsType: uuid: mkFilesystemDev fsType (diskByUuid uuid);
mkFilesystem' =
f: d: c: o:
neededForBoot (mkFilesystemDev f d c o);
mkEFI =
uuid:
neededForBoot {
device = diskByUuid uuid;
fsType = "vfat";
};
mkTmpfs =
name: size:
neededForBoot {
device = name;
fsType = "tmpfs";
options = [
"defaults"
"size=${size}"
"mode=755"
];
};
mkBtrfs' = options: uuid: extraOptions: {
device = diskByUuid uuid;
fsType = "btrfs";
options = options ++ extraOptions;
};
mkBtrfs = mkBtrfs' [
"autodefrag"
"noatime"
"ssd"
"compress=zstd:1"
];
mkSwap = uuid: { device = diskByUuid uuid; };
}