diff --git a/README.md b/README.md index 75662ba..8288302 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,13 @@ # Dendritic unflake -This repository serves as an example Dendritic Nix setup implemented **without** flakes nor flake-parts. +This repository serves as an example Dendritic Nix implementation **without** flakes nor flake-parts. -Entry point is [default.nix](default.nix) and has an [example](modules/example.nix) Dendritic nixosConfiguration. +Entry point is [default.nix](default.nix), [modules/example.nix](modules/example.nix) defines a nixosConfiguration. -This example uses [unflake](https://discourse.nixos.org/t/unflake-flake-dependencies-for-non-flake-projects-and-a-way-to-stop-writing-follows/72611) to fetch dependencies. +This example uses [unflake](https://discourse.nixos.org/t/unflake-flake-dependencies-for-non-flake-projects-and-a-way-to-stop-writing-follows/72611) to fetch dependencies and provide flake-like inputs. ## Usage @@ -29,11 +29,11 @@ nix-shell https://ln-s.sh/unflake -A unflake-shell --run unflake Build `my-laptop` nixos config: ```console -nixos-rebuild build --file . --attr nixosConfigurations.my-laptop +nixos-rebuild build -f . -A nixosConfigurations.my-laptop ``` alternatively: ```console -nix-build . --attr nixosConfigurations.my-laptop.config.system.build.toplevel +nix-build -A nixosConfigurations.my-laptop.config.system.build.toplevel ``` \ No newline at end of file diff --git a/modules/example.nix b/modules/example.nix index 18b8728..668832a 100644 --- a/modules/example.nix +++ b/modules/example.nix @@ -1,28 +1,22 @@ { lib, self, ... }: { - modules.nixos.no-boot = { boot.loader.grub.enable = false; fileSystems."/".device = "/dev/no-device"; }; - modules.nixos.installer = - { modulesPath, ... }: - { - imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ]; - }; - modules.nixos.statics = { system.stateVersion = "25.11"; nixpkgs.hostPlatform = "x86_64-linux"; passthru = { }; }; + modules.nixos.my-laptop.imports = with self.modules.nixos; [ + statics + no-boot + ]; + nixosConfigurations.my-laptop = lib.nixosSystem { - modules = with self.modules.nixos; [ - statics - no-boot - # installer - ]; + modules = [ self.modules.nixos.my-laptop ]; }; } diff --git a/modules/options/modules.nix b/modules/options/modules.nix index 056da24..1ab5332 100644 --- a/modules/options/modules.nix +++ b/modules/options/modules.nix @@ -1,8 +1,8 @@ { lib, ... }: { options.modules = lib.mkOption { - description = ". modules. equivalent to flake-parts' flake.modules"; + description = ". modules. akin to flake-parts' flake.modules"; default = { }; - type = lib.types.attrsOf (lib.types.attrsOf lib.types.deferredModule); + type = lib.types.lazyAttrsOf (lib.types.lazyAttrsOf lib.types.deferredModule); }; } diff --git a/modules/options/nixos-configurations.nix b/modules/options/nixos-configurations.nix index 42e3596..a138103 100644 --- a/modules/options/nixos-configurations.nix +++ b/modules/options/nixos-configurations.nix @@ -3,6 +3,6 @@ options.nixosConfigurations = lib.mkOption { description = "NixOS configurations"; default = { }; - type = lib.types.attrsOf lib.types.anything; + type = lib.types.lazyAttrsOf lib.types.raw; }; }