Files
home-manager/modules/lib/default.nix
Austin Horstman 793d075a50 lib/shell: warn on self-referential session variables
Warn when session-variable definitions may change if applied more than
once. Apply the check to home and Zsh session variables without changing
their generated output.

Detect direct references after caller-specific rendering while excluding
stable whole-value expansions. Attribute each warning to the surviving
per-attribute definitions, including their module priorities and wrappers.

This gives users advance notice before later work allows the session
configuration to be applied in new shells. Recommend search-variable
options for path-like values and complete assignments for other values.

Tests cover detector boundaries, Zsh escaping, source attribution, and
both module call sites.
2026-09-30 21:06:23 -05:00

24 lines
804 B
Nix

{ lib }:
rec {
dag = import ./dag.nix { inherit lib; };
assertions = import ./assertions.nix { inherit lib; };
booleans = import ./booleans.nix;
darwin = import ./darwin.nix { inherit lib; };
deprecations = import ./deprecations.nix { inherit lib; };
generators = import ./generators.nix { inherit lib; };
git = import ./git.nix { inherit lib; };
gvariant = import ./gvariant.nix { inherit lib; };
maintainers = import ./maintainers.nix;
mcp = import ./mcp.nix { inherit lib; };
options = import ./options.nix { inherit lib; };
strings = import ./strings.nix { inherit lib; };
types = import ./types.nix { inherit gvariant lib; };
shell = import ./shell.nix { inherit lib; };
zsh = import ./zsh.nix { inherit lib; };
nushell = import ./nushell.nix { inherit lib; };
}