From 68a710b2e3b4e6d278a7f3d39722c8288ee8135d Mon Sep 17 00:00:00 2001 From: paki23 Date: Mon, 3 Jun 2024 22:21:33 +0200 Subject: [PATCH] direnv: add xonsh support --- modules/programs/direnv.nix | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/modules/programs/direnv.nix b/modules/programs/direnv.nix index add2c8fc..864e51bd 100644 --- a/modules/programs/direnv.nix +++ b/modules/programs/direnv.nix @@ -64,6 +64,14 @@ in { ''; }; + enableXonshIntegration = mkOption { + default = true; + type = types.bool; + description = '' + Whether to enable Xonsh integration. + ''; + }; + enableFishIntegration = mkOption { default = true; type = types.bool; @@ -129,6 +137,27 @@ in { ${getExe cfg.package} hook fish | source ''); + programs.xonsh = mkIf cfg.enableXonshIntegration { + xonshrc = "xontrib load direnv"; + extraPackages = ps: + [ + (ps.buildPythonPackage rec { + name = "xonsh-direnv"; + src = pkgs.fetchFromGitHub { + owner = "74th"; + repo = name; + rev = "fd086e737a2d54495619a40d2a0f9e96475626e7"; + hash = "sha256-h56Gx/MMCW4L6nGwLAhBkiR7bX+qfFk80LEsJMiDtjQ="; + }; + postPatch = '' + substituteInPlace xontrib/direnv.xsh --replace '$(direnv' '$(${ + getExe cfg.package + }' + ''; + }) + ]; + }; + programs.nushell.extraConfig = mkIf cfg.enableNushellIntegration ( # Using mkAfter to make it more likely to appear after other # manipulations of the prompt.