diff --git a/modules/nixos/_private/default.nix b/modules/nixos/_private/default.nix index 3a22f193..fefc498a 100644 --- a/modules/nixos/_private/default.nix +++ b/modules/nixos/_private/default.nix @@ -1,6 +1,7 @@ { imports = [ ./extra-arguments.nix + ./state.nix ./suites/archiving.nix ./suites/browsers.nix ./suites/desktop.nix diff --git a/modules/nixos/_private/state.nix b/modules/nixos/_private/state.nix new file mode 100644 index 00000000..48b5fb13 --- /dev/null +++ b/modules/nixos/_private/state.nix @@ -0,0 +1,25 @@ +{ lib, ... }: + +{ + options.state = lib.mkOption { + type = lib.types.submodule { + freeFormType = with lib.types; attrsOf anything; + default = { }; + }; + description = '' + A set of values referring to the system state for use in other parts of + the NixOS system. Useful for consistent values and referring to a single + source of truth for different parts (e.g., services, program) of the + system. + ''; + example = { + services = { + postgresql.directory = "/var/lib/postgresql"; + backup.ignoreDirectories = [ + "node_modules" + ".direnv" + ]; + }; + }; + }; +}