Skip to content

Generated Outputs ​

Snowveil 把约定目录转成标准 Flake outputs。它先发现文件,再把 NixOS 与 Home Manager 配置交给各自的模块系统求值。

text
hosts/laptop/
        │
        ▼
nixosConfigurations.laptop

homes/rhen/laptop.nix
        │
        ▼
homeConfigurations."rhen@laptop"

modules/desktop/fonts/
        │
        ▼
nixosModules."desktop.fonts"
homeModules."desktop.fonts"

目录映射 ​

目录或文件生成的 output
hosts/<name>/default.nixnixosConfigurations.<name>
homes/<user>/default.nixhomeConfigurations.<user>
homes/<user>/<host>.nixhomeConfigurations."<user>@<host>"
modules/<path>/{options,default,nixos,home}.nixnixosModules."<path>" 与/或 homeModules."<path>"
packages/<name>/default.nixpackages.<system>.<name>
apps/<name>/default.nixapps.<system>.<name>
overlays/<name>/default.nixoverlays.<name>
shells/<name>/default.nixdevShells.<system>.<name>
checks/<name>/default.nixchecks.<system>.<name>
formatter/default.nixformatter.<system>
deploy/default.nixdeploy
lib/<name>.nixlib.<name>

hardware.nix、disk.nix 与 network.nix 是 hosts/<name>/ 内的附加 magic 文件:它们被导入 nixosConfigurations.<name>,但不会单独生成 output。

查看生成结果 ​

bash
nix flake show

检查发现清单而不构建主机:

bash
nix run .#snowveil-discovery

需要 JSON 时加 --json,或使用 CI 专用的 check:

bash
nix run .#snowveil-discovery -- --json
nix build .#checks.x86_64-linux.snowveil-discovery

若一个目录未生成预期 output,先确认文件名和路径符合上表,再查看调试与问题排查。完整的目录扫描和排序契约属于Discovery Specification。

MIT 许可发布