45 lines
1,008 B
Nix
45 lines
1,008 B
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; };
|
|
}
|