| # rmmod(8) completion -*- shell-script -*- |
| # SPDX-License-Identifier: LGPL-2.1-or-later |
| # |
| # SPDX-FileCopyrightText: 2024 Emil Velikov <emil.l.velikov@gmail.com> |
| # |
| # Formatted using: |
| # shfmt --language-dialect bash --indent 4 --func-next-line |
| |
| _rmmod() |
| { |
| # long/short opt pairs |
| local -A opts=( |
| ['force']='f' |
| ['syslog']='s' |
| ['verbose']='v' |
| ['version']='V' |
| ['help']='h' |
| ) |
| |
| local cur="${COMP_WORDS[COMP_CWORD]}" |
| |
| if [[ $cur == --* ]]; then |
| COMPREPLY=($(compgen -P '--' -W "${!opts[*]}" -- "${cur:2}")) |
| elif [[ $cur == -* ]]; then |
| if (( ${#cur} != 2 )); then |
| COMPREPLY=($(compgen -P '--' -W "${!opts[*]}" -- "${cur:2}")) |
| fi |
| COMPREPLY+=($(compgen -P '-' -W "${opts[*]}" -- "${cur:1}")) |
| else |
| local -a modules=($(lsmod | cut -f1 -d' ')) |
| COMPREPLY=($(compgen -W "${modules[*]}" -- "${cur}")) |
| fi |
| } && |
| complete -F _rmmod rmmod |