43 lines
1.2 KiB
Nix
43 lines
1.2 KiB
Nix
{ lib, namespace, ... }:
|
|
with lib;
|
|
let
|
|
inherit (lib.mjallen) mkOpt;
|
|
in
|
|
{
|
|
|
|
options.${namespace}.impermanence = {
|
|
enable = mkEnableOption "enable impermanence";
|
|
persistencePath = mkOption {
|
|
type = types.str;
|
|
default = "/nix/persist/system";
|
|
description = "Path to the persistence directory";
|
|
};
|
|
|
|
# extraDirectories = mkOpt (types.listOf types.path) [ ] "Extra directory paths to add to impermanence";
|
|
extraDirectories = mkOpt (types.listOf (types.either types.str (types.submodule {
|
|
options = {
|
|
directory = mkOption {
|
|
type = types.str;
|
|
description = "Directory path";
|
|
};
|
|
user = mkOption {
|
|
type = types.str;
|
|
default = "root";
|
|
description = "Directory owner";
|
|
};
|
|
group = mkOption {
|
|
type = types.str;
|
|
default = "root";
|
|
description = "Directory group";
|
|
};
|
|
mode = mkOption {
|
|
type = types.str;
|
|
default = "u=rwx,g=rx,o=";
|
|
description = "Directory permissions";
|
|
};
|
|
};
|
|
}))) [ ] "Extra directory paths to add to impermanence";
|
|
extraFiles = mkOpt (types.listOf types.path) [ ] "Extra file paths to add to impermanence";
|
|
};
|
|
}
|