From 69dfc316c5b5f2de1d68e477393fecbf19a0cdba Mon Sep 17 00:00:00 2001 From: ljyoth Date: Mon, 17 Feb 2025 20:36:02 -0500 Subject: [PATCH] mise: enable nushell integration (#6363) --- modules/programs/mise.nix | 14 +++++++++++++ tests/modules/programs/mise/default.nix | 1 + .../programs/mise/nushell-integration.nix | 21 +++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 tests/modules/programs/mise/nushell-integration.nix diff --git a/modules/programs/mise.nix b/modules/programs/mise.nix index e0d1b1c8bd02..67b0a4b577c6 100644 --- a/modules/programs/mise.nix +++ b/modules/programs/mise.nix @@ -21,6 +21,7 @@ in { "enableBashIntegration" "enableZshIntegration" "enableFishIntegration" + "enableNushellIntegration" "settings" ]; @@ -39,6 +40,9 @@ in { enableZshIntegration = lib.hm.shell.mkZshIntegrationOption { inherit config; }; + enableNushellIntegration = + lib.hm.shell.mkNushellIntegrationOption { inherit config; }; + globalConfig = mkOption { type = tomlFormat.type; default = { }; @@ -103,6 +107,16 @@ in { fish.interactiveShellInit = mkIf cfg.enableFishIntegration '' ${getExe cfg.package} activate fish | source ''; + + nushell = mkIf cfg.enableNushellIntegration { + extraEnv = '' + let mise_path = $nu.default-config-dir | path join mise.nu + ^mise activate nu | save $mise_path --force + ''; + extraConfig = '' + use ($nu.default-config-dir | path join mise.nu) + ''; + }; }; }; } diff --git a/tests/modules/programs/mise/default.nix b/tests/modules/programs/mise/default.nix index 511082a12830..402e32639b50 100644 --- a/tests/modules/programs/mise/default.nix +++ b/tests/modules/programs/mise/default.nix @@ -4,4 +4,5 @@ mise-bash-integration = ./bash-integration.nix; mise-zsh-integration = ./zsh-integration.nix; mise-fish-integration = ./fish-integration.nix; + mise-nushell-integration = ./nushell-integration.nix; } diff --git a/tests/modules/programs/mise/nushell-integration.nix b/tests/modules/programs/mise/nushell-integration.nix new file mode 100644 index 000000000000..926df987e30a --- /dev/null +++ b/tests/modules/programs/mise/nushell-integration.nix @@ -0,0 +1,21 @@ +{ config, ... }: { + programs = { + mise = { + package = config.lib.test.mkStubPackage { name = "mise"; }; + enable = true; + enableNushellIntegration = true; + }; + + nushell.enable = true; + }; + + nmt.script = '' + assertFileContains home-files/.config/nushell/env.nu \ + ' + let mise_path = $nu.default-config-dir | path join mise.nu + ^mise activate nu | save $mise_path --force + ' + assertFileContains home-files/.config/nushell/config.nu \ + 'use ($nu.default-config-dir | path join mise.nu)' + ''; +}