1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-12-17 13:10:29 +03:00
mobile-nixos/lib/image-builder/default.nix

47 lines
1.3 KiB
Nix
Raw Normal View History

2019-08-27 22:41:09 +03:00
{ lib, newScope }:
let
inherit (lib) makeScope;
in
makeScope newScope (self:
2019-08-27 22:41:09 +03:00
let
inherit (self) callPackage;
in
# Note: Prefer using `self.something.deep` rather than making `something` a
# recursive set. Otherwise it won't override as expected.
2019-08-27 22:41:09 +03:00
{
makeFilesystem = callPackage ./makeFilesystem.nix {};
2019-08-27 22:41:09 +03:00
# All known supported filesystems for image generation.
# Use stand-alone (outside of a disk image) is supported.
fileSystem = {
2019-08-30 01:16:39 +03:00
makeExt4 = callPackage ./makeExt4.nix {};
2019-08-27 22:41:09 +03:00
makeFAT32 = callPackage ./makeFAT32.nix {};
# Specialization of `makeFAT32` with (1) filesystemType showing as ESP,
# and (2) the name defaults to ESP.
makeESP = args: self.fileSystem.makeFAT32 ({ name = "ESP"; filesystemType = "ESP"; } // args);
2019-08-27 22:41:09 +03:00
};
gap = length: {
inherit length;
isGap = true;
};
2019-08-27 22:41:09 +03:00
# All supported disk formats for image generation.
diskImage = {
2019-08-27 22:41:09 +03:00
makeMBR = callPackage ./makeMBR.nix {};
makeGPT = callPackage ./makeGPT.nix {};
2019-08-27 22:41:09 +03:00
};
# Don't do maths yourselves, just use the helpers.
# Yes, this is the bibytes family of units.
# (This is fine as rec; it won't be overriden.)
2019-08-27 22:41:09 +03:00
size = rec {
TiB = x: 1024 * (GiB x);
GiB = x: 1024 * (MiB x);
MiB = x: 1024 * (KiB x);
KiB = x: 1024 * x;
};
}
)