lol

nixos/maintainers/scripts/lxd: simplify config generation

Use modulesPath so we don't have to magically rewrite paths in activation script,
set stateVersion to the one this was built with (which should approximate "first install")

K900 67f87ecc 100931cc

+20 -12
+3 -3
nixos/maintainers/scripts/lxd/lxd-container-image-inner.nix
··· 2 2 # your system. Help is available in the configuration.nix(5) man page 3 3 # and in the NixOS manual (accessible by running ‘nixos-help’). 4 4 5 - { config, pkgs, lib, ... }: 5 + { config, pkgs, lib, modulesPath, ... }: 6 6 7 7 { 8 8 imports = 9 9 [ 10 10 # Include the default lxd configuration. 11 - ../../../modules/virtualisation/lxc-container.nix 11 + "${modulesPath}/modules/virtualisation/lxc-container.nix" 12 12 # Include the container-specific autogenerated configuration. 13 13 ./lxd.nix 14 14 ]; ··· 16 16 networking.useDHCP = false; 17 17 networking.interfaces.eth0.useDHCP = true; 18 18 19 - system.stateVersion = "21.05"; # Did you read the comment? 19 + system.stateVersion = "@stateVersion@"; # Did you read the comment? 20 20 }
+7 -3
nixos/maintainers/scripts/lxd/lxd-container-image.nix
··· 13 13 }; 14 14 15 15 # copy the config for nixos-rebuild 16 - system.activationScripts.config = '' 16 + system.activationScripts.config = let 17 + config = pkgs.substituteAll { 18 + src = ./lxd-container-image-inner.nix; 19 + stateVersion = lib.trivial.release; 20 + }; 21 + in '' 17 22 if [ ! -e /etc/nixos/configuration.nix ]; then 18 23 mkdir -p /etc/nixos 19 - cat ${./lxd-container-image-inner.nix} > /etc/nixos/configuration.nix 20 - ${lib.getExe pkgs.gnused} 's|../../../modules/virtualisation/lxc-container.nix|<nixpkgs/nixos/modules/virtualisation/lxc-container.nix>|g' -i /etc/nixos/configuration.nix 24 + cp ${config} /etc/nixos/configuration.nix 21 25 fi 22 26 ''; 23 27
+3 -3
nixos/maintainers/scripts/lxd/lxd-virtual-machine-image-inner.nix
··· 2 2 # your system. Help is available in the configuration.nix(5) man page 3 3 # and in the NixOS manual (accessible by running ‘nixos-help’). 4 4 5 - { config, pkgs, lib, ... }: 5 + { config, pkgs, lib, modulesPath, ... }: 6 6 7 7 { 8 8 imports = 9 9 [ 10 10 # Include the default lxd configuration. 11 - ../../../modules/virtualisation/lxd-virtual-machine.nix 11 + "${modulesPath}/virtualisation/lxd-virtual-machine.nix" 12 12 # Include the container-specific autogenerated configuration. 13 13 ./lxd.nix 14 14 ]; ··· 16 16 networking.useDHCP = false; 17 17 networking.interfaces.eth0.useDHCP = true; 18 18 19 - system.stateVersion = "23.05"; # Did you read the comment? 19 + system.stateVersion = "@stateVersion@"; # Did you read the comment? 20 20 }
+7 -3
nixos/maintainers/scripts/lxd/lxd-virtual-machine-image.nix
··· 13 13 }; 14 14 15 15 # copy the config for nixos-rebuild 16 - system.activationScripts.config = '' 16 + system.activationScripts.config = let 17 + config = pkgs.substituteAll { 18 + src = ./lxd-virtual-machine-image-inner.nix; 19 + stateVersion = lib.trivial.release; 20 + }; 21 + in '' 17 22 if [ ! -e /etc/nixos/configuration.nix ]; then 18 23 mkdir -p /etc/nixos 19 - cat ${./lxd-virtual-machine-image-inner.nix} > /etc/nixos/configuration.nix 20 - ${lib.getExe pkgs.gnused} 's|../../../modules/virtualisation/lxd-virtual-machine.nix|<nixpkgs/nixos/modules/virtualisation/lxd-virtual-machine.nix>|g' -i /etc/nixos/configuration.nix 24 + cp ${config} /etc/nixos/configuration.nix 21 25 fi 22 26 ''; 23 27