mise: add bash completion to bash integration

The bash integration previously only ran `mise activate bash`, so tab
completion for `mise` was never set up. Source the generated completion
script via `mise completion bash --include-bash-completion-lib`; the
flag self-bundles the bash-completion helpers so it also works on
systems whose bash-completion predates `_comp_initialize`.

Fixes #8539
This commit is contained in:
Austin Horstman
2026-06-17 09:32:24 -05:00
parent 7664e05e24
commit 524d73a903
2 changed files with 19 additions and 5 deletions
@@ -1,8 +1,12 @@
{ config, ... }:
{ pkgs, ... }:
{
programs = {
mise = {
package = config.lib.test.mkStubPackage { name = "mise"; };
package = pkgs.writeShellScriptBin "mise" ''
if [ "$1" = "completion" ]; then
echo "complete -F _mise mise"
fi
'';
enable = true;
enableBashIntegration = true;
};
@@ -12,5 +16,7 @@
nmt.script = ''
assertFileRegex home-files/.bashrc 'eval "$(/nix/store/.*mise.*/bin/mise activate bash)"'
assertFileRegex home-files/.bashrc \
'^source /nix/store/[0-9a-z]*-mise-bash-completion.bash$'
'';
}