From 83f4629364b6e627ce25d7d246058e48ffa4b111 Mon Sep 17 00:00:00 2001 From: Raine Godmaire Date: Fri, 7 Mar 2025 14:29:16 -0500 Subject: [PATCH] granted: support fish shell (#6549) Due to fish being a non-POSIX shell, granted provides a separate wrapper to be used by fish. --- modules/programs/granted.nix | 9 +++++++++ tests/modules/programs/granted/default.nix | 6 ++++-- .../programs/granted/fish-integration-disabled.nix | 11 +++++++++++ .../programs/granted/fish-integration-enabled.nix | 10 ++++++++++ ...tion-disabled.nix => zsh-integration-disabled.nix} | 0 ...ration-enabled.nix => zsh-integration-enabled.nix} | 0 6 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 tests/modules/programs/granted/fish-integration-disabled.nix create mode 100644 tests/modules/programs/granted/fish-integration-enabled.nix rename tests/modules/programs/granted/{integration-disabled.nix => zsh-integration-disabled.nix} (100%) rename tests/modules/programs/granted/{integration-enabled.nix => zsh-integration-enabled.nix} (100%) diff --git a/modules/programs/granted.nix b/modules/programs/granted.nix index d3a7e5e00..b20312069 100644 --- a/modules/programs/granted.nix +++ b/modules/programs/granted.nix @@ -15,6 +15,9 @@ in { enableZshIntegration = lib.hm.shell.mkZshIntegrationOption { inherit config; }; + + enableFishIntegration = + lib.hm.shell.mkFishIntegrationOption { inherit config; }; }; config = mkIf cfg.enable { @@ -27,5 +30,11 @@ in { unset GRANTED_ALIAS_CONFIGURED } ''; + + programs.fish.functions.assume = mkIf cfg.enableFishIntegration '' + set -x GRANTED_ALIAS_CONFIGURED "true" + source ${package}/share/assume.fish + set -e GRANTED_ALIAS_CONFIGURED + ''; }; } diff --git a/tests/modules/programs/granted/default.nix b/tests/modules/programs/granted/default.nix index da462752b..a4e79212b 100644 --- a/tests/modules/programs/granted/default.nix +++ b/tests/modules/programs/granted/default.nix @@ -1,4 +1,6 @@ { - granted-integration-enabled = ./integration-enabled.nix; - granted-integration-disabled = ./integration-disabled.nix; + granted-zsh-integration-enabled = ./zsh-integration-enabled.nix; + granted-zsh-integration-disabled = ./zsh-integration-disabled.nix; + granted-fish-integration-enabled = ./fish-integration-enabled.nix; + granted-fish-integration-disabled = ./fish-integration-disabled.nix; } diff --git a/tests/modules/programs/granted/fish-integration-disabled.nix b/tests/modules/programs/granted/fish-integration-disabled.nix new file mode 100644 index 000000000..9518c8934 --- /dev/null +++ b/tests/modules/programs/granted/fish-integration-disabled.nix @@ -0,0 +1,11 @@ +{ + programs = { + granted.enable = true; + granted.enableFishIntegration = false; + fish.enable = true; + }; + + nmt.script = '' + assertPathNotExists home-files/.config/fish/functions/assume.fish + ''; +} diff --git a/tests/modules/programs/granted/fish-integration-enabled.nix b/tests/modules/programs/granted/fish-integration-enabled.nix new file mode 100644 index 000000000..80e30873a --- /dev/null +++ b/tests/modules/programs/granted/fish-integration-enabled.nix @@ -0,0 +1,10 @@ +{ + programs = { + granted.enable = true; + fish.enable = true; + }; + + nmt.script = '' + assertFileExists home-files/.config/fish/functions/assume.fish + ''; +} diff --git a/tests/modules/programs/granted/integration-disabled.nix b/tests/modules/programs/granted/zsh-integration-disabled.nix similarity index 100% rename from tests/modules/programs/granted/integration-disabled.nix rename to tests/modules/programs/granted/zsh-integration-disabled.nix diff --git a/tests/modules/programs/granted/integration-enabled.nix b/tests/modules/programs/granted/zsh-integration-enabled.nix similarity index 100% rename from tests/modules/programs/granted/integration-enabled.nix rename to tests/modules/programs/granted/zsh-integration-enabled.nix