zoxide: enable nushell integration

This commit is contained in:
Adam Stephens 2023-03-17 14:21:53 -04:00 committed by Robert Helgesson
parent a34aaad2ae
commit 2f8d24b7f5
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
1 changed files with 26 additions and 9 deletions

View File

@ -6,6 +6,8 @@ let
cfg = config.programs.zoxide;
cfgOptions = concatStringsSep " " cfg.options;
in {
meta.maintainers = [ maintainers.marsam ];
@ -53,27 +55,42 @@ in {
Whether to enable Fish integration.
'';
};
enableNushellIntegration = mkOption {
default = true;
type = types.bool;
description = ''
Whether to enable Nushell integration.
'';
};
};
config = mkIf cfg.enable {
home.packages = [ cfg.package ];
programs.bash.initExtra = mkIf cfg.enableBashIntegration ''
eval "$(${cfg.package}/bin/zoxide init bash ${
concatStringsSep " " cfg.options
})"
eval "$(${cfg.package}/bin/zoxide init bash ${cfgOptions})"
'';
programs.zsh.initExtra = mkIf cfg.enableZshIntegration ''
eval "$(${cfg.package}/bin/zoxide init zsh ${
concatStringsSep " " cfg.options
})"
eval "$(${cfg.package}/bin/zoxide init zsh ${cfgOptions})"
'';
programs.fish.shellInit = mkIf cfg.enableFishIntegration ''
${cfg.package}/bin/zoxide init fish ${
concatStringsSep " " cfg.options
} | source
${cfg.package}/bin/zoxide init fish ${cfgOptions} | source
'';
programs.nushell = mkIf cfg.enableNushellIntegration {
extraEnv = ''
let zoxide_cache = "${config.xdg.cacheHome}/zoxide"
if not ($zoxide_cache | path exists) {
mkdir $zoxide_cache
}
${cfg.package}/bin/zoxide init nushell ${cfgOptions} | save --force ${config.xdg.cacheHome}/zoxide/init.nu
'';
extraConfig = ''
source ${config.xdg.cacheHome}/zoxide/init.nu
'';
};
};
}