From 99082860628e33f06787105f883cc307f4d59b61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torjus=20H=C3=A5kestad?= Date: Sun, 1 Feb 2026 17:08:05 +0100 Subject: [PATCH] scripts: fix create-host flake.nix insertion point Fix bug where new hosts were added outside of nixosConfigurations block instead of inside it. Issues fixed: 1. Pattern was looking for "packages =" but actual text is "packages = forAllSystems" 2. Replacement was putting new entry AFTER closing brace instead of BEFORE 3. testvm01 was at top-level flake output instead of in nixosConfigurations Changes: - Update pattern to match "packages = forAllSystems" - Put new entry BEFORE the closing brace of nixosConfigurations - Move testvm01 to correct location inside nixosConfigurations block Result: nix flake show now correctly shows testvm01 as NixOS configuration Co-Authored-By: Claude Sonnet 4.5 --- flake.nix | 2 +- scripts/create-host/manipulators.py | 10 +++++----- scripts/create-host/templates/configuration.nix.j2 | 5 ++--- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/flake.nix b/flake.nix index e3b6054..05d7a18 100644 --- a/flake.nix +++ b/flake.nix @@ -334,7 +334,6 @@ sops-nix.nixosModules.sops ]; }; - }; testvm01 = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { @@ -351,6 +350,7 @@ sops-nix.nixosModules.sops ]; }; + }; packages = forAllSystems ( { pkgs }: { diff --git a/scripts/create-host/manipulators.py b/scripts/create-host/manipulators.py index 4d821cc..366e215 100644 --- a/scripts/create-host/manipulators.py +++ b/scripts/create-host/manipulators.py @@ -50,17 +50,17 @@ def update_flake_nix(config: HostConfig, repo_root: Path, force: bool = False) - if count == 0: raise ValueError(f"Could not find existing entry for {config.hostname} in flake.nix") else: - # Insert new entry before closing brace - # Pattern: " };\n packages =" - pattern = r"( \};)\n( packages =)" - replacement = rf"\g<1>\n{new_entry}\g<2>" + # Insert new entry before closing brace of nixosConfigurations + # Pattern: " };\n packages = forAllSystems" + pattern = r"( \};)\n( packages = forAllSystems)" + replacement = rf"{new_entry}\g<1>\n\g<2>" new_content, count = re.subn(pattern, replacement, content) if count == 0: raise ValueError( "Could not find insertion point in flake.nix. " - "Looking for pattern: ' };\\n packages ='" + "Looking for pattern: ' };\\n packages = forAllSystems'" ) flake_path.write_text(new_content) diff --git a/scripts/create-host/templates/configuration.nix.j2 b/scripts/create-host/templates/configuration.nix.j2 index 1665e67..30e830f 100644 --- a/scripts/create-host/templates/configuration.nix.j2 +++ b/scripts/create-host/templates/configuration.nix.j2 @@ -7,16 +7,15 @@ { imports = [ - ../template/hardware-configuration.nix + ../template2/hardware-configuration.nix ../../system ../../common/vm ]; nixpkgs.config.allowUnfree = true; - # Use the systemd-boot EFI boot loader. boot.loader.grub.enable = true; - boot.loader.grub.device = "/dev/sda"; + boot.loader.grub.device = "/dev/vda"; networking.hostName = "{{ hostname }}"; networking.domain = "{{ domain }}";