From 8a3b87b2af609925227de2f91dad400a3bdc5638 Mon Sep 17 00:00:00 2001
From: NullBite <me@nullbite.com>
Date: Thu, 1 Feb 2024 12:21:45 +0100
Subject: [PATCH] Add mkWSLSystem function

---
 flake.nix | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/flake.nix b/flake.nix
index 3b20594..aca3c77 100644
--- a/flake.nix
+++ b/flake.nix
@@ -20,6 +20,11 @@
       url = "github:nix-community/nix-index-database";
       inputs.nixpkgs.follows = "nixpkgs";
     };
+
+    nix-wsl = {
+      url = "github:nix-community/NixOS-WSL";
+      inputs.nixpkgs.follows = "nixpkgs";
+    };
   };
 
   outputs = { self, nixpkgs, nixpkgs-unstable, ... }@inputs: 
@@ -107,6 +112,19 @@
         };
       };
 
+    mkWSLSystem = let _username=username; in
+      {username ? _username, extraModules ? [], ...}@args: let
+        WSLModule = {...}: {
+          imports = [
+            inputs.nix-wsl.nixosModules.wsl
+          ];
+          wsl.enable = true;
+          wsl.defaultUser = username;
+        };
+        override = {extraModules = extraModules ++ [WSLModule];};
+      in
+        mkSystem (args // override);
+
     # values to be passed to nixosModules and homeManagerModules wrappers
     moduleInputs = {
       inherit mkExtraPkgs;