diff options
Diffstat (limited to 'modules/by-name/im/impermanence/module.nix')
| -rw-r--r-- | modules/by-name/im/impermanence/module.nix | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/modules/by-name/im/impermanence/module.nix b/modules/by-name/im/impermanence/module.nix index b7bbbe3d..78ad570f 100644 --- a/modules/by-name/im/impermanence/module.nix +++ b/modules/by-name/im/impermanence/module.nix @@ -10,6 +10,7 @@ { config, lib, + modules, ... }: let cfg = config.soispha.impermanence; @@ -30,8 +31,27 @@ in { })); description = "The directories to persist"; }; + + userDirectories = lib.mkOption { + type = lib.types.listOf (lib.types.either lib.types.str (lib.types.submodule { + options = { + directory = lib.mkOption { + type = lib.types.str; + }; + mode = lib.mkOption { + type = lib.types.str; + }; + }; + })); + default = []; + description = "The directories to persist"; + }; }; + imports = [ + modules.impermanence.nixosModules.impermanence + ]; + config = lib.mkIf cfg.enable { environment.persistence = { "/srv" = { @@ -48,16 +68,13 @@ in { ".local/state/wireplumber" ".config/Signal" - ".config/Element" - ".config/iamb/profiles" ".cache" - ".mozilla/firefox" "media" "repos" - "school" - ]; + "documents" + ] ++ cfg.userDirectories; }; files = [ |
