mirror of
https://github.com/aviallon/nixos-lib.git
synced 2026-04-06 01:38:06 +00:00
39 lines
967 B
Nix
39 lines
967 B
Nix
{config, pkgs, lib, ...}:
|
|
with lib;
|
|
let
|
|
cfg = config.aviallon.non-persistence;
|
|
in
|
|
{
|
|
options.aviallon.non-persistence = {
|
|
enable = mkEnableOption "non-persitent root";
|
|
};
|
|
config = mkIf cfg.enable {
|
|
assertions = [
|
|
{ assertion = hasAttr "/persist" config.fileSystems;
|
|
message = "A /persist partition is needed for non-persistence";
|
|
}
|
|
{ assertion = hasAttr "/var/log" config.fileSystems;
|
|
message = "A /var/log separate parition is needed to avoid missing early logs.";
|
|
}
|
|
];
|
|
|
|
environment.etc = {
|
|
nixos.source = "/persist/etc/nixos";
|
|
NIXOS.source = "/persist/etc/NIXOS";
|
|
machine-id.source = "/persist/etc/machine-id";
|
|
};
|
|
|
|
|
|
fileSystems = {
|
|
"/var/log" = {
|
|
neededForBoot = true;
|
|
autoFormat = true;
|
|
label = "nixos-persistent-logs";
|
|
};
|
|
"/persist" = {
|
|
neededForBoot = true;
|
|
label = "nixos-persistent-data";
|
|
};
|
|
};
|
|
};
|
|
}
|