diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 01:03:18 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 01:03:18 +0000 |
commit | f2621414ee5f2f601424c22f00e207903e3b6104 (patch) | |
tree | 56a856dafd1ca684bb23263cacaa723ee4f404fc /completions/kldload | |
parent | Adding debian version 1:2.11-8. (diff) | |
download | bash-completion-f2621414ee5f2f601424c22f00e207903e3b6104.tar.xz bash-completion-f2621414ee5f2f601424c22f00e207903e3b6104.zip |
Merging upstream version 1:2.12.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'completions/kldload')
-rw-r--r-- | completions/kldload | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/completions/kldload b/completions/kldload index f511158..3c2396d 100644 --- a/completions/kldload +++ b/completions/kldload @@ -2,20 +2,31 @@ [[ $OSTYPE == *freebsd* ]] || return 1 -_kldload() +_comp_cmd_kldload() { - local cur prev words cword - _init_completion || return + local cur prev words cword comp_args + _comp_initialize -- "$@" || return - local moddir=/modules/ - [[ -d $moddir ]] || moddir=/boot/kernel/ + if _comp_looks_like_path "$cur"; then + _comp_compgen_filedir ko + return + fi - compopt -o filenames - COMPREPLY=($(compgen -f "$moddir$cur")) - COMPREPLY=(${COMPREPLY[@]#$moddir}) - COMPREPLY=(${COMPREPLY[@]%.ko}) + local moddirs modules i + if _comp_split -F ";" moddirs "$(kldconfig -r 2>/dev/null)"; then + compopt -o filenames + for i in "${moddirs[@]}"; do + _comp_compgen -v modules -c "$i/$cur" -- -f && + COMPREPLY+=("${modules[@]#$i/}") + done + ((${#COMPREPLY[@]})) && + COMPREPLY=("${COMPREPLY[@]%.ko}") + fi + + # also add dirs in current dir + _comp_compgen -a filedir -d } && - complete -F _kldload kldload + complete -F _comp_cmd_kldload kldload # ex: filetype=sh |