aboutsummaryrefslogtreecommitdiffhomepage
path: root/flake.nix
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-08-05 21:31:36 +0900
committerOphestra <cat@gensokyo.uk>2025-08-07 02:46:04 +0900
commit72a931a71a4722c0e56b231d07787bef608ceedc (patch)
tree7de0a75a8d091ceb78f89a040af79f9c806710f3 /flake.nix
parent9a25542c6d23fd4dc12f25fa914e6f560f4d7324 (diff)
nix: interactive nixos vm
This is useful for quickly spinning up an ephemeral hakurei environment for testing changes or reproducing vm test failures. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix47
1 files changed, 47 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
index b4f9e39d..556f7762 100644
--- a/flake.nix
+++ b/flake.nix
@@ -159,6 +159,53 @@
default = pkgs.mkShell { buildInputs = hakurei.targetPkgs; };
withPackage = pkgs.mkShell { buildInputs = [ hakurei ] ++ hakurei.targetPkgs; };
+ vm =
+ let
+ nixos = nixpkgs.lib.nixosSystem {
+ inherit system;
+ modules = [
+ {
+ environment = {
+ systemPackages = [
+ (pkgs.buildFHSEnv {
+ pname = "hakurei-fhs";
+ inherit (hakurei) version;
+ targetPkgs = _: hakurei.targetPkgs;
+ extraOutputsToInstall = [ "dev" ];
+ profile = ''
+ export PKG_CONFIG_PATH="/usr/share/pkgconfig:$PKG_CONFIG_PATH"
+ '';
+ })
+ ];
+
+ hakurei =
+ let
+ # this is used for interactive vm testing during development, where tests might be broken
+ package = self.packages.${pkgs.system}.hakurei.override {
+ buildGoModule = previousArgs: pkgs.pkgsStatic.buildGoModule (previousArgs // { doCheck = false; });
+ };
+ in
+ {
+ inherit package;
+ hsuPackage = self.packages.${pkgs.system}.hsu.override { hakurei = package; };
+ };
+ };
+ }
+
+ ./test/interactive/configuration.nix
+ ./test/interactive/vm.nix
+ ./test/interactive/hakurei.nix
+
+ self.nixosModules.hakurei
+ self.inputs.home-manager.nixosModules.home-manager
+ ];
+ };
+ in
+ pkgs.mkShell {
+ buildInputs = [ nixos.config.system.build.vm ];
+ shellHook = "exec run-nixos-vm $@";
+ };
+
generateDoc =
let
inherit (pkgs) lib;