From e401f680302d4f9c353f4f08744bc69a1f903557 Mon Sep 17 00:00:00 2001 From: Archit Gupta Date: Wed, 18 Oct 2023 20:04:16 -0700 Subject: [PATCH] Allow overriding of default devShell This sets the default devShell using mkDefault, letting user set default shells override it. Previously, to set a different default shell, one would have to not set any of the devShell.* options and then define devShells.default, or use mkForce. --- builtinModules/devShells.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/builtinModules/devShells.nix b/builtinModules/devShells.nix index 0489fbf..a554d87 100644 --- a/builtinModules/devShells.nix +++ b/builtinModules/devShells.nix @@ -4,8 +4,8 @@ { config, lib, flakelight, ... }: let - inherit (lib) any attrValues filterAttrs mapAttrs mkIf mkMerge mkOption - optionalAttrs; + inherit (lib) any attrValues filterAttrs mapAttrs mkDefault mkIf mkMerge + mkOption optionalAttrs; inherit (lib.types) lazyAttrsOf functionTo lines listOf nullOr package str; inherit (flakelight) supportedSystem; inherit (flakelight.types) optFunctionTo packageDef; @@ -45,7 +45,7 @@ in config = mkMerge [ (mkIf (any (x: x != null) (attrValues config.devShell)) { - devShells.default = { pkgs, mkShell }: mkShell ( + devShells.default = mkDefault ({ pkgs, mkShell }: mkShell ( optionalAttrs (config.devShell.env != null) (config.devShell.env pkgs) // optionalAttrs (config.devShell.inputsFrom != null) { @@ -57,7 +57,7 @@ in // optionalAttrs (config.devShell.shellHook != null) { shellHook = config.devShell.shellHook pkgs; } - ); + )); }) (mkIf (config.devShells != { }) {